从 QTreeView 中删除项目时取消选择所有行
Unselect all rows when deleting item from QTreeView
我有QTreeView和选择模式:单选(选择模式(。
我想删除所选项目。然后调用rowsAboutToBeRemoved()
函数,并按照注释中指定自动选择相邻项目:// Ensure one selected item in single selection mode
。
如何避免选择更改?
- 如何使删除后不会选择任何项目?
- 如何使已删除项目的父项将被选中?
给定:
QTreeView view;
我们可以访问QItemSelectionModel
实例并暂时禁用信号:
QItemSelectionModel *selectModel = view.selectionModel();
selectModel->blockSignals(true);
//set the selection
selectModel->blockSignals(false);
快速插入源显示Qt将QItemSelectionModel::currentChanged()
信号连接到视图的currentChanged()
槽,这似乎是麻烦的根源。
大声思考:
QTreeView view;
...
QItemSelection Modem *selectModel = view.selectionModel();
disconnect(selectModel, &QItemSelectionModel::currentChanged,0, 0);
这真的有点严厉,但只要QTreeView被你严格控制,它可能值得一试。
我想另一种方法是滚动你自己的模型实现,这样你就可以在创建时控制连接。
(注意:感谢@Jon Harper,以便我可以复制/粘贴源代码;)。
相关文章:
- 如何使用默认参数等选择模板专业化
- 挂起和取消挂起一个文件DLL
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- 选择要调用的构造函数
- C++选择排序算法中的逻辑错误
- 如何取消对nullptr的屏蔽,返回正确的对象
- QTreeView幻灯片多选后无法使用单击选择
- C++取消引用指针.为什么会发生变化
- 无法获取菜单选择以运行函数.C++
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 使用取消引用的指针的多态性会产生意外的结果.为什么?
- 从 QTreeView 中删除项目时取消选择所有行
- 如何在取消选择QCheckBox时禁用QPushButton
- QT:无法在ListBoxWidget中的ListBox项目中添加选择和取消选择功能
- 如何使“确认选择”函数从“主要”取消,如果它是假的
- 关于智能指针中取消引用和成员选择运算符的定义
- 在 QTableView 中取消选择单行
- 如何告知用户单击了文件名选择对话框中的取消
- 具有重载的取消引用运算符的成员选择
- QFileDialog在关闭/析构时冻结(选择文件或取消)