首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将QModelIndex设置为在PyQT中发出QAbstractTableModel.dataChanged?

如何将QModelIndex设置为在PyQT中发出QAbstractTableModel.dataChanged?
EN

Stack Overflow用户
提问于 2022-02-26 13:56:56
回答 1查看 130关注 0票数 0

当模型数据发生变化时,我想刷新QTableView的内容。

但是我找不到一种方法来说明QModelIndex实例的值。

参见下面代码中的问题。

代码语言:javascript
运行
复制
from PyQt5 import QtWidgets, QtCore
from PyQt5.QtCore import QModelIndex, Qt

class MyTableModel(QtCore.QAbstractTableModel):
    def __init__(self, data=[[]], parent=None):
        super().__init__(parent)
        self.data = data
...
data = [
    [1, 2],
    [3, 4],
]
model = MyTableModel(data)
view = QtWidgets.QTableView()
view.setModel(model)

# changing a data element at row 1, column 0
data[1][0] = 30

row_index = QModelIndex()
# Question: how do I set row_index as 1?
col_index = QModelIndex()
# Question: how do I set col_index as 0?
model.dataChanged.emit(row_index, col_index, Qt.DisplayRole)
EN

回答 1

Stack Overflow用户

发布于 2022-02-26 14:10:26

模型的index方法就是这样做的。

代码语言:javascript
运行
复制
row_index = model.index(1, 0)
col_index = model.index(1, 0)
model.dataChanged.emit(row_index, col_index, Qt.DisplayRole)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71277230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档