我想向pyqt5的tableview表格控件写入数据,但是不知道为什么不显示,代码和运行效果如下:
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QTableView, QAbstractItemView, QMessageBox
from PyQt5.QtGui import QStandardItemModel, QStandardItem
from PyQt5.QtCore import Qt
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.model = QStandardItemModel()
self.model.setHorizontalHeaderLabels(['Name', 'Age', 'Gender'])
self.table_view = QTableView()
self.table_view.setModel(self.model)
self.setCentralWidget(self.table_view)
# Add data to the table
data = [('Alice', 20, 'Female'),
('Bob', 25, 'Male'),
('Charlie', 30, 'Male')]
for row in data:
self.add_row(row[0], row[1], row[2])
def add_row(self, name, age, gender):
parent = QStandardItem()
row = [QStandardItem(name), QStandardItem(str(age)), QStandardItem(gender)]
parent.appendRow(row)
self.model.appendRow(parent)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())
运行结果: