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表格小部件

PyQt5-高级控件使用(QListView)

如何使用 PYQT5 使 QTableWidget 单元格只读?

Qtablewidget 去除黑色空间 PyQt5