Сигнал itemChanged
испускается всякий раз, когда данные изменяются для любой из ролей в элементе. Это включает, когда Qt::DisplayRole
изменяется, потому что пользователь отредактировал имя, или когда вы звоните QTreeWidgetItem::setData
. Он также испускается в некоторых других случаях, например, когда меняются флаги и когда элемент включен / отключен.
Если вы хотите знать только об изменении имени, вы можете напрямую подключиться к сигналу dataChanged
базовой модели и проверить аргумент roles
для роли Qt::DisplayRole
. Например:
connect(treeWidget->model(), &QAbstractItemModel::dataChanged,
[](const QModelIndex &index, const QModelIndex &, const QVector<int> &roles) {
if (roles.contains(Qt::DisplayRole))
qDebug("Display role changed!");
});