下面是一个使用QAbstractTableModel的简单范例:
from PyQt5.QtCore import QAbstractTableModel, Qt class MyTableModel(QAbstractTableModel): def __init__(self, data, header): super().__init__() self._data = https://www.yisu.com/ask/data"__main__": import sys from PyQt5.QtWidgets import QApplication, QTableView app = QApplication(sys.argv) data = https://www.yisu.com/ask/["Alice", 25, "Female"], ["Bob", 32, "Male"], ["Charlie", 45, "Male"], ] header = ["Name", "Age", "Gender"] model = MyTableModel(data, header) view = QTableView() view.setModel(model) view.resize(300, 200) view.show() sys.exit(app.exec_())
这个例子创建了一个自定义的QAbstractTableModel派生类,用于显示一个简单的表格。构造函数中传入了数据和表头,然后在rowCount和columnCount方法中返回数据的行数和列数。在data方法中,根据index和role返回相应的数据。在headerData方法中,根据section、orientation和role返回表头的数据。最后,通过创建一个QTableView对象,并将自定义的TableModel对象设置为其模型,来显示表格数据。