是否可以知道树中的项目何时被重命名
Is it possible to know whenever an item in a tree has been renamed?
我正在使用QTreeWidget。我允许用户重命名树中的项目。然而,每当一个项目被重命名时,我都必须在后台管理一些东西。所以我需要弄清楚用户何时重命名项目。我已经看到了插槽"ItemChanged",但我不知道这个插槽是否仅在重命名项目时使用。
这是我如何将该项目设置为可重命名的方法。
default_item->setSelected(true);
default_item->setFlags(default_item->flags() | Qt::ItemIsEditable);
每当项目中任何角色的数据发生更改时,都会发出itemChanged
信号。这包括Qt::DisplayRole
因用户编辑名称而更改时,或者当您调用QTreeWidgetItem::setData
时。在其他一些情况下也会发出它,例如当标志更改以及启用/禁用项目时。
如果您只想知道名称何时更改,则可以直接连接到基础模型的dataChanged
信号,并检查Qt::DisplayRole
角色的roles
参数。例如:
connect(treeWidget->model(), &QAbstractItemModel::dataChanged,
[](const QModelIndex &index, const QModelIndex &, const QVector<int> &roles) {
if (roles.contains(Qt::DisplayRole))
qDebug("Display role changed!");
});
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 无法在 CLion 中构建 C++ 项目
- 运行同一解决方案的另一个项目的项目
- CMake-按正确顺序将项目与C运行时对象文件链接
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 欧拉项目#8答案是大以获得有效答案
- 从链接列表c++中删除一个项目
- 何时在引用或唯一指针上使用移动语义
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 既然存在危险,为什么项目要使用-I include开关
- cmake在我的项目中所需的所有静态库都不成功
- 何时提供默认参数作为模板参数
- QT通过C++添加映射QML项目
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 在linux上调试巨大的C++项目
- 在其他文件中创建类时在 c++ 项目中不起作用
- C++-明确何时以及如何调用析构函数
- 是否可以知道树中的项目何时被重命名
- 如何确切知道用户何时扩展QTreeView项目
- visual studio 2012 - c++最佳实践-我应该何时将我的项目分成.h和.cpp文件