PyQt/Pyside - 使用valueChanged时也返回上一个值

2 投票
1 回答
522 浏览
提问于 2025-04-18 05:11

我刚刚加入这个论坛。
在一个QTableWidget中,我想验证QTableWidgetItem的值是否被更改。如果新的值在表格的其他地方也存在,我需要把这个值改回之前的值。我考虑过使用一个临时列表,但想知道是否可以有一个自定义信号或者类似的东西,能够同时返回QTableWidgetItem的更改值和之前的值。谢谢 :)

1 个回答

0

我想你是在寻找这个方法的重新实现:

void QAbstractItemDelegate::setModelData(QWidget * editor, QAbstractItemModel * model, const QModelIndex & index) const [virtual]

这个方法的作用是把给定编辑器中的内容设置到模型中指定索引的项目上。

基础实现是没有任何操作的。如果你想要自定义编辑功能,就需要重新实现这个函数。

这样你就可以在这里发出一个信号,当某个单元格的值发生变化时,可以同时获取到之前和现在的值。

QTableWidget中,似乎没有现成的信号可以直接使用。

撰写回答