PyQt5-高级控件使用(QTableWidget)
Posted ygzhaof
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PyQt5-高级控件使用(QTableWidget)相关的知识,希望对你有一定的参考价值。
QTableWidget是Qt中常用显示数据的表格,类似其他语言中的DataGrid; QTableWidget是QtableView的子类;每个单元格下是一个QTableWidgetItem对象;
常用方法如下:
表格编辑类型的枚举常量:
单元格选中相关枚举类型:
单元格内容对齐方式枚举类型:
例如:
1 #QTableWidget 控件使用 2 from PyQt5.QtWidgets import QTableView,QAbstractItemView,QHeaderView,QTableWidget, QTableWidgetItem, QMessageBox,QListWidget,QListWidgetItem, QStatusBar, QMenuBar,QMenu,QAction,QLineEdit,QStyle,QFormLayout, QVBoxLayout,QWidget,QApplication ,QHBoxLayout, QPushButton,QMainWindow,QGridLayout,QLabel 3 from PyQt5.QtGui import QIcon,QPixmap,QStandardItem,QStandardItemModel,QCursor 4 from PyQt5.QtCore import QStringListModel,QAbstractListModel,QModelIndex,QSize,Qt 5 import sys 6 7 class WindowClass(QWidget): 8 9 def __init__(self,parent=None): 10 11 super(WindowClass, self).__init__(parent) 12 self.layout=QHBoxLayout() 13 self.resize(400,300) 14 tableWidget=QTableWidget() 15 tableWidget.setRowCount(4)#行数 16 tableWidget.setColumnCount(4)#列数 17 tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)#所有列自动拉伸,充满界面 18 tableWidget.setSelectionMode(QAbstractItemView.SingleSelection) # 设置只能选中一行 19 tableWidget.setEditTriggers(QTableView.NoEditTriggers) # 不可编辑 20 tableWidget.setSelectionBehavior(QAbstractItemView.SelectRows); # 设置只有行选中 21 22 self.layout.addWidget(tableWidget) 23 tableWidget.setHorizontalHeaderLabels([‘姓名‘,‘地址‘,‘年龄‘,‘工资‘]) #横向标题排列,如果使用setVerticalHeaderLabels则是纵向排列标题 24 items=[[‘JONES‘,‘Beijing‘,‘23‘,2300],[‘SMITH‘,‘SHAngHai‘,‘23‘,‘3000‘],[‘ZY‘,‘Tianjin‘,‘23‘,‘2000‘],[‘Smith‘,‘SJT‘,‘22‘,‘1030‘]] 25 for i in range(len(items)):#注意上面列表中数字加单引号,否则下面不显示(或者下面str方法转化一下即可) 26 item=items[i] 27 for j in range(len(item)): 28 item = QTableWidgetItem(str(items[i][j])) 29 tableWidget.setItem(i,j,item) 30 self.setLayout(self.layout) 31 32 if __name__=="__main__": 33 app=QApplication(sys.argv) 34 win=WindowClass() 35 win.show() 36 sys.exit(app.exec_())
以上部分方法是之间使用QTableView组件时使用过的;请注意;
以上是关于PyQt5-高级控件使用(QTableWidget)的主要内容,如果未能解决你的问题,请参考以下文章
QTdesigner课时67.扩展的表格控件(QTableWidget)pyqt5+QTdesigner模式
[ PyQt入门教程 ] PyQt5中数据表格控件QTableWidget使用方法
Qt入门系列开发教程高级控件篇QTableWidget表格小部件