使用QAbstractTableModel的简单范例

   2025-02-22 5300
核心提示:下面是一个使用QAbstractTableModel的简单范例:from PyQt5.QtCore import QAbstractTableModel, Qtclass MyTableModel(QAbstrac

下面是一个使用QAbstractTableModel的简单范例:

from PyQt5.QtCore import QAbstractTableModel, Qtclass MyTableModel(QAbstractTableModel):def __init__(self, data, header):super().__init__()self._data = dataself._header = headerdef rowCount(self, parent):return len(self._data)def columnCount(self, parent):return len(self._data[0])def data(self, index, role):if role == Qt.DisplayRole:row = index.row()column = index.column()return self._data[row][column]return Nonedef headerData(self, section, orientation, role):if role == Qt.DisplayRole:if orientation == Qt.Horizontal:return self._header[section]elif orientation == Qt.Vertical:return section + 1return None# 使用范例if __name__ == "__main__":import sysfrom PyQt5.QtWidgets import QApplication, QTableViewapp = QApplication(sys.argv)data = [["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对象设置为其模型,来显示表格数据。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言