ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# PyQt 表格 > 原文: [https://pythonbasics.org/pyqt-table/](https://pythonbasics.org/pyqt-table/) 可以使用`QTableWidget`创建表。 它是基于项目的表视图,类似于您在 Excel 中看到的视图。 您可以将表格窗口小部件作为 gui 的一部分,或弹出带有表格之类的 Excel 的窗口。 在此示例(**PyQt5**)中,它将显示带有表的窗口,但是您可以通过 Designer 将其作为窗口 GUI 的一部分。 ## 表格 ### `QTableWidget` `QTableWidget`是具有行和列的表小部件。 该对象具有方法`.setRowCount(x)`和`.setColumnCount(y)`,其中`x`是行数,`y`是列数。 您可以将其用作`self.setRowCount(5)`。 ![pyqt table](https://img.kancloud.cn/8b/a3/8ba3451c46351ed69f90040dd1f56398_386x323.jpg) 内容由`self.setItem(m, n, newitem)`设置,其中`m`和`n`是表格内的坐标。 变量`newitem`的类型为`QTableWidgetItem`,可以将文本值作为字符串。 例如:`.setItem(1,2, QTableWidgetItem("Table Cell"))` ### PyQT 中的表格 该表由变量数据定义。 ```py data = {'col1':['1','2','3','4'], 'col2':['1','2','1','3'], 'col3':['1','1','2','1']} ``` 下面的示例创建一个包含 3 列和若干行的表。 ```py 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) ``` [下载示例](https://gum.co/pysqtsamples)