Login
网站首页 > 文章中心 > python

python 动态修改 tableview 单元格 数据

作者:小编 更新时间:2023-06-14 22:43:55 浏览量:103人看过

python 动态修改 tableview 单元格 数据

软件介绍:在 Python 中,可以使用 PyQt 或 PySide 模块创建 GUI 应用程序动态修改 tableview 单元格 数据。要动态修改 TableView...

在 Python 中,可以使用 PyQt 或 PySide 模块创建 GUI 应用程序动态修改 tableview 单元格 数据。要动态修改 TableView 单元格数据,可以将模型绑定到 TableView 上,并通过模型对单元格数据进行更改。

以下是一个简单的示例代码,该代码使用 PyQt5 模块创建了一个简单的 TableView 和 Model,并演示了如何动态更改单元格数据:

土嘎嘎技术网提供python演示代码如下:

from PyQt5.QtGui import *

from PyQt5.QtWidgets import *

from PyQt5.QtCore import *

class MyModel(QAbstractTableModel):

    def __init__(self, data):

        QAbstractTableModel.__init__(self)

        self._data = data

    def rowCount(self, parent=None):

        return len(self._data)

    def columnCount(self, parent=None):

        return len(self._data[0])

    def data(self, index, role=Qt.DisplayRole):

        if not index.isValid():

            return QVariant()

        elif role != Qt.DisplayRole:

            return QVariant()

        return QVariant(self._data[index.row()][index.column()])

    def setData(self, index, value, role=Qt.EditRole):

        if index.isValid() and role == Qt.EditRole:

            self._data[index.row()][index.column()] = value

            self.dataChanged.emit(index, index)

            return True

        return False

class MyWindow(QWidget):

    def __init__(self):

        super().__init__()

        self.initUI()

    def initUI(self):

        self.setGeometry(100, 100, 400, 300)

        self.setWindowTitle('TableView Example')

        self.table_model = MyModel([[1,2,3],[4,5,6],[7,8,9]])

        self.tableView = QTableView()

        self.tableView.setModel(self.table_model)

        self.button = QPushButton('Change data', self)

        self.button.clicked.connect(self.change_data)

        layout = QVBoxLayout()

        layout.addWidget(self.tableView)

        layout.addWidget(self.button)

        self.setLayout(layout)

    def change_data(self):

        self.table_model.setData(self.table_model.index(1,1), 'X')

if __name__ == '__main__':

    app = QApplication([])

    window = MyWindow()

    window.show()

    app.exec_()

在这个python 动态修改 tableview 单元格 数据示例中,我们首先定义了一个名为 MyModel 的类来实现 TableView 模型。然后,在 MyWindow 类的 initUI() 方法中,我们创建了一个 TableView 和一个按钮,并将模型绑定到 TableView 上。当单击按钮时,我们调用 setData() 方法来改变单元格数据。

注意,setData() 方法必须返回 True 表示更改成功。如果返回 False,则说明更改失败。

这是一个非常简单的示例,仅演示了如何动态更改单个单元格的数据。如果您需要更复杂的功能,例如添加或删除行和列,您需要相应地调整模型和视图。


版权声明:倡导尊重与保护知识产权,本站有部分资源、图片来源于网络,如有侵权,请联系我们修改或者删除处理。
转载请说明来源于"土嘎嘎" 本文地址:http://www.tugaga.com/jishu/python/343.html
<<上一篇 2023-06-10
下一篇 >> 2023-06-14

相关推荐

编辑推荐

热门文章