可以使用QTableWidget
创建表。 它是基于项目的表视图,类似于您在 Excel 中看到的视图。
您可以将表格窗口小部件作为 gui 的一部分,或弹出带有表格之类的 Excel 的窗口。
在此示例(PyQt5)中,它将显示带有表的窗口,但是您可以通过 Designer 将其作为窗口 GUI 的一部分。
表格
QTableWidget
QTableWidget
是具有行和列的表小部件。
该对象具有方法.setRowCount(x)
和.setColumnCount(y)
,其中x
是行数,y
是列数。 您可以将其用作self.setRowCount(5)
。
内容由self.setItem(m, n, newitem)
设置,其中m
和n
是表格内的坐标。
变量newitem
的类型为QTableWidgetItem
,可以将文本值作为字符串。 例如:.setItem(1,2, QTableWidgetItem("Table Cell"))
PyQT 中的表格
该表由变量数据定义。
data = {'col1':['1','2','3','4'],
'col2':['1','2','1','3'],
'col3':['1','1','2','1']}
下面的示例创建一个包含 3 列和若干行的表。
from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QAction, QTableWidget,QTableWidgetItem,QVBoxLayout
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import pyqtSlot
import sys
data = {'col1':['1','2','3','4'],
'col2':['1','2','1','3'],
'col3':['1','1','2','1']}
class TableView(QTableWidget):
def __init__(self, data, *args):
QTableWidget.__init__(self, *args)
self.data = data
self.setData()
self.resizeColumnsToContents()
self.resizeRowsToContents()
def setData(self):
horHeaders = []
for n, key in enumerate(sorted(self.data.keys())):
horHeaders.append(key)
for m, item in enumerate(self.data[key]):
newitem = QTableWidgetItem(item)
self.setItem(m, n, newitem)
self.setHorizontalHeaderLabels(horHeaders)
def main(args):
app = QApplication(args)
table = TableView(data, 4, 3)
table.show()
sys.exit(app.exec_())
if __name__=="__main__":
main(sys.argv)