Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有QTreeView一些QStandardItems。这些项目是可编辑的,我想通过信号或事件过滤器对项目的文本进行更改时进行编程。我找不到任何能满足要求的东西。我试过QStandardModel::itemChanged了,但这会响应其他项目数据的变化,我看不到区分文本内容和用户数据变化的方法。解决这个问题的最佳方法是什么?
QTreeView
QStandardItem
QStandardModel::itemChanged
为了解决这个问题,我最终从 QStandardItem 派生了一个类并覆盖了 QStandardItem::setData ,如下所示:
void MyStandardItem::setData(const QVariant& value, int role) { if (role == Qt::EditRole) { doStuff(); } QStandardItem::setData(value, role); }