国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

python GUI庫圖形界面開發之PyQt5表格控件QTableView詳細使用方法與實例

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

在通常情況下,一個應用需要和一批數據進行交互,然后以表格的形式輸出這些信息,這時就需要用到QTableView類了,在QTableView中可以使用自定義的數據模型來顯示內容,通過setModel來綁定數據源

QTableWidget繼承自QTableView,主要區別是QTableView可以使用自定義的數據模型來顯示內容(先通setModel來綁定數據源),而QTableWidget自能使用標準的數據模型,并且其單元格數據是通過QTableWidgetItem對象實現的,通常QTableWidget就能夠滿足我們的要求

QTableView可用的模式

QTableView控件可以綁定一個模型數據用來更新控件上的內容

名稱 含義 QStringListModel 儲存一組字符串 QstandardItemModel 存儲任意層次結構的數據 QDirModel 對文件系統進行封裝 QSqlQueryModel 對SQL的查詢結果集進行封裝 QSqlTableModel 對SQL中的表格進行封裝 QSqlRelationalTableModel 對帶有foreign key的SQL表格進行封裝 QSortFilterProxyModel 對模型中的數據進行排序或過濾 QTableView的使用實例

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) #設置標題與初始大小 self.setWindowTitle(’QTableView表格視圖的例子’) self.resize(500,300) #設置數據層次結構,4行4列 self.model=QStandardItemModel(4,4) #設置水平方向四個頭標簽文本內容 self.model.setHorizontalHeaderLabels([’標題1’,’標題2’,’標題3’,’標題4’]) # #Todo 優化2 添加數據 # 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))#設置每個位置的文本值self.model.setItem(row,column,item) #實例化表格視圖,設置模型為自定義的模型 self.tableView=QTableView() self.tableView.setModel(self.model) # #todo 優化1 表格填滿窗口 # #水平方向標簽拓展剩下的窗口部分,填滿表格 # self.tableView.horizontalHeader().setStretchLastSection(True) # #水平方向,表格大小拓展到適當的尺寸 # self.tableView.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) # # #TODO 優化3 刪除當前選中的數據 # indexs=self.tableView.selectionModel().selection().indexes() # print(indexs) # if len(indexs)>0: # index=indexs[0] # self.model.removeRows(index.row(),1) #設置布局 layout=QVBoxLayout() layout.addWidget(self.tableView) self.setLayout(layout)if __name__ == ’__main__’: app=QApplication(sys.argv) table=Table() table.show() sys.exit(app.exec_())

運行程序,顯示效果如圖

python GUI庫圖形界面開發之PyQt5表格控件QTableView詳細使用方法與實例

從圖中可以看出,表格并沒有填滿窗口,每列都可以自由拉伸,但是可能會出現滾動條

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

#水平方向標簽拓展剩下的窗口部分,填滿表格self.tableView.horizontalHeader().setStretchLastSection(True)#水平方向,表格大小拓展到適當的尺寸 self.tableView.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)

效果如下

python GUI庫圖形界面開發之PyQt5表格控件QTableView詳細使用方法與實例

優化2:添加數據

#Todo 優化2 添加數據 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庫圖形界面開發之PyQt5表格控件QTableView詳細使用方法與實例

優化3:刪除當前選中的數據

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

python GUI庫圖形界面開發之PyQt5表格控件QTableView詳細使用方法與實例

本文主要介紹了PyQt5表格控件QTableView詳細使用方法與實例,更多關于這方面的知識請查看下面的相關鏈接

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 人人爽人人香蕉 | 国产美女视频网站 | 欧美最新的精品videoss | 加勒比一区二区 | 久久影院一区二区三区 | 一级女性全黄久久生活片 | 成年人网站免费观看 | 免费在线观看a级毛片 | 性久久久久久久久久 | 久久久久国产午夜 | 国产三级视频在线播放 | 亚洲线精品一区二区三区 | 日韩一区二区免费看 | 国产三级a三级三级三级 | 三级网站在线 | 亚洲综合成人网 | 亚洲欧美日韩成人一区在线 | 成人永久福利在线观看不卡 | 成人99国产精品一级毛片 | 欧美一级专区免费大片俄罗斯 | 日韩无砖专区体验区 | 国产成人综合91精品 | 国产极品喷水视频jk制服 | 午夜日b视频 | 中国性猛交xxxxx免费看 | 久久精品中文字幕首页 | 日韩特级毛片 | www.黄色免费 | 欧美一级高清黄图片 | 国产成人一区二区三区视频免费 | 欧美成人精品久久精品 | 黄色三级网 | 一级做性色a爰片久久毛片 一级做性色a爰片久久毛片免费 | 色综合日韩 | 亚洲日产综合欧美一区二区 | 男女做性免费视频软件 | 国产欧美日本在线观看 | 国产大尺度福利视频在线观看 | 国产a网站 | 五月色婷婷琪琪综合伊人 | 日本69色视频在线观看 |