我有QTreeView
填充了一些QStandardItem
个。这些项目是可编辑的,我想编程,以便在项目文本发生变化时做出反应,无论是通过信号还是事件过滤器。我找不到任何填写账单的东西。我尝试了QStandardModel::itemChanged
,但是它响应了其他项目数据的变化,我没有看到区分文本内容和用户数据的变化的方法。解决这个问题的最佳方法是什么?
答案 0 :(得分:0)
为了解决这个问题,我结束了从QStandardItem派生一个类并覆盖QStandardItem :: setData这样的东西:
void MyStandardItem::setData(const QVariant& value, int role)
{
if (role == Qt::EditRole) {
doStuff();
}
QStandardItem::setData(value, role);
}