我该如何回应QTreeView中正在更改的文本?

时间:2013-01-20 00:17:48

标签: c++ qt qt4 qtreeview

我有QTreeView填充了一些QStandardItem个。这些项目是可编辑的,我想编程,以便在项目文本发生变化时做出反应,无论是通过信号还是事件过滤器。我找不到任何填写账单的东西。我尝试了QStandardModel::itemChanged,但是它响应了其他项目数据的变化,我没有看到区分文本内容和用户数据的变化的方法。解决这个问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

为了解决这个问题,我结束了从QStandardItem派生一个类并覆盖QStandardItem :: setData这样的东西:

void MyStandardItem::setData(const QVariant& value, int role)
{
    if (role == Qt::EditRole) {
        doStuff();
    }

    QStandardItem::setData(value, role);
}