av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5表格控件QTableView詳細(xì)使用方法與實(shí)例

瀏覽:5日期:2022-08-04 18:58:00
PyQt5表格控件QTableView簡(jiǎn)介

在通常情況下,一個(gè)應(yīng)用需要和一批數(shù)據(jù)進(jìn)行交互,然后以表格的形式輸出這些信息,這時(shí)就需要用到QTableView類了,在QTableView中可以使用自定義的數(shù)據(jù)模型來(lái)顯示內(nèi)容,通過(guò)setModel來(lái)綁定數(shù)據(jù)源

QTableWidget繼承自QTableView,主要區(qū)別是QTableView可以使用自定義的數(shù)據(jù)模型來(lái)顯示內(nèi)容(先通setModel來(lái)綁定數(shù)據(jù)源),而QTableWidget自能使用標(biāo)準(zhǔn)的數(shù)據(jù)模型,并且其單元格數(shù)據(jù)是通過(guò)QTableWidgetItem對(duì)象實(shí)現(xiàn)的,通常QTableWidget就能夠滿足我們的要求

QTableView可用的模式

QTableView控件可以綁定一個(gè)模型數(shù)據(jù)用來(lái)更新控件上的內(nèi)容

名稱 含義 QStringListModel 儲(chǔ)存一組字符串 QstandardItemModel 存儲(chǔ)任意層次結(jié)構(gòu)的數(shù)據(jù) QDirModel 對(duì)文件系統(tǒng)進(jìn)行封裝 QSqlQueryModel 對(duì)SQL的查詢結(jié)果集進(jìn)行封裝 QSqlTableModel 對(duì)SQL中的表格進(jìn)行封裝 QSqlRelationalTableModel 對(duì)帶有foreign key的SQL表格進(jìn)行封裝 QSortFilterProxyModel 對(duì)模型中的數(shù)據(jù)進(jìn)行排序或過(guò)濾 QTableView的使用實(shí)例

import sysfrom PyQt5.QtCore import *from PyQt5.QtWidgets import *from PyQt5.QtGui import *class Table(QWidget): def __init__(self,parent=None): super(Table, self).__init__(parent) #設(shè)置標(biāo)題與初始大小 self.setWindowTitle(’QTableView表格視圖的例子’) self.resize(500,300) #設(shè)置數(shù)據(jù)層次結(jié)構(gòu),4行4列 self.model=QStandardItemModel(4,4) #設(shè)置水平方向四個(gè)頭標(biāo)簽文本內(nèi)容 self.model.setHorizontalHeaderLabels([’標(biāo)題1’,’標(biāo)題2’,’標(biāo)題3’,’標(biāo)題4’]) # #Todo 優(yōu)化2 添加數(shù)據(jù) # self.model.appendRow([ # QStandardItem(’row %s,column %s’ % (11,11)), # QStandardItem(’row %s,column %s’ % (11,11)), # QStandardItem(’row %s,column %s’ % (11,11)), # QStandardItem(’row %s,column %s’ % (11,11)), # ]) for row in range(4): for column in range(4):item=QStandardItem(’row %s,column %s’%(row,column))#設(shè)置每個(gè)位置的文本值self.model.setItem(row,column,item) #實(shí)例化表格視圖,設(shè)置模型為自定義的模型 self.tableView=QTableView() self.tableView.setModel(self.model) # #todo 優(yōu)化1 表格填滿窗口 # #水平方向標(biāo)簽拓展剩下的窗口部分,填滿表格 # self.tableView.horizontalHeader().setStretchLastSection(True) # #水平方向,表格大小拓展到適當(dāng)?shù)某叽? # self.tableView.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) # # #TODO 優(yōu)化3 刪除當(dāng)前選中的數(shù)據(jù) # indexs=self.tableView.selectionModel().selection().indexes() # print(indexs) # if len(indexs)>0: # index=indexs[0] # self.model.removeRows(index.row(),1) #設(shè)置布局 layout=QVBoxLayout() layout.addWidget(self.tableView) self.setLayout(layout)if __name__ == ’__main__’: app=QApplication(sys.argv) table=Table() table.show() sys.exit(app.exec_())

運(yùn)行程序,顯示效果如圖

python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5表格控件QTableView詳細(xì)使用方法與實(shí)例

從圖中可以看出,表格并沒(méi)有填滿窗口,每列都可以自由拉伸,但是可能會(huì)出現(xiàn)滾動(dòng)條

優(yōu)化1:需要表格填充滿窗口,可以添加一下代碼

#水平方向標(biāo)簽拓展剩下的窗口部分,填滿表格self.tableView.horizontalHeader().setStretchLastSection(True)#水平方向,表格大小拓展到適當(dāng)?shù)某叽? self.tableView.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)

效果如下

python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5表格控件QTableView詳細(xì)使用方法與實(shí)例

優(yōu)化2:添加數(shù)據(jù)

#Todo 優(yōu)化2 添加數(shù)據(jù) self.model.appendRow([ QStandardItem(’row %s,column %s’ % (11,11)), QStandardItem(’row %s,column %s’ % (11,11)), QStandardItem(’row %s,column %s’ % (11,11)), QStandardItem(’row %s,column %s’ % (11,11)), ])

效果如圖

python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5表格控件QTableView詳細(xì)使用方法與實(shí)例

優(yōu)化3:刪除當(dāng)前選中的數(shù)據(jù)

indexs=self.tableView.selectionModel().selection().indexes() print(indexs) if len(indexs)>0: index=indexs[0] self.model.removeRows(index.row(),1)

python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5表格控件QTableView詳細(xì)使用方法與實(shí)例

本文主要介紹了PyQt5表格控件QTableView詳細(xì)使用方法與實(shí)例,更多關(guān)于這方面的知識(shí)請(qǐng)查看下面的相關(guān)鏈接

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 色婷综合网 | 亚洲高清在线观看 | 888久久久 | 在线免费黄色小视频 | 亚洲色在线视频 | 日韩精品视频在线 | 日日日日操 | 亚洲精品第一 | 在线免费黄色小视频 | 涩涩视频在线看 | 欧美日韩高清在线一区 | 国产一区中文字幕 | 91久久电影 | 天天狠狠 | 日韩国产免费观看 | 久久国产综合 | 操到爽| 91精品久久久久 | 成人av看片 | 日本超碰 | 欧洲一级黄 | 在线2区 | 国产在线精品一区二区 | 91精品国产一区二区三区香蕉 | 久久精品中文字幕 | 色综合久久久 | 亚洲综合二区 | 九色www| 99久久久久久| 91在线免费视频 | 亚洲视频免费一区 | av天天看| 亚洲成人自拍 | 欧美精品乱码久久久久久按摩 | 亚洲精品视频久久 | 欧美视频精品 | 国产人成精品一区二区三 | 日韩毛片在线观看 | 国产日韩欧美中文 | 国产高清在线观看 | 超碰在线人人 |