软件介绍:在 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,则说明更改失败。
这是一个非常简单的示例,仅演示了如何动态更改单个单元格的数据。如果您需要更复杂的功能,例如添加或删除行和列,您需要相应地调整模型和视图。