QTreeView:如果未键入任何内容,则不要更新索引
QTreeView: Do not update index if nothing has been typed
在QTreeView中,如果用户正在编辑previousIndex并点击TAB,则会为currentIndex打开编辑器,则默认行为是打开一个空白的文本编辑,以便如果用户立即再次点击TAB,光标移动到nextIndex,模型收到一个setData(currentIndex,QVariant(( (,其中包含空的QVariant作为数据。
是否可以更改此行为,以便用户通过按 TAB 打开编辑器,但已经存在的数据仍然存在,以便用户需要显式删除它?
我想我可以通过使用
void QAbstractItemDelegate::setEditorData(QWidget *editor, const QModelIndex &index) const
但我不确定在哪里打电话给它。
我只是在与一个类似的问题作斗争,即在 qtreeview 中编辑单元格是清除单元格,而不是突出显示当前文本。
我在试图找到答案时发现了你的问题,所以也许我的经验会很有用。
我的问题出在我的模型::d ata(( 方法中。
我做了提前退出测试:
if (role != Qt::DisplayRole)
return QVariant();
这是按设计工作的 - 一旦我进入编辑模式,它就会返回一个空值。
我将编辑角色添加到测试中,它工作正常。
if (role != Qt::DisplayRole && role != Qt::EditRole)
return QVariant();
相关文章:
- 并行用于C++17中数组索引范围内的循环
- QTreeView:如果未键入任何内容,则不要更新索引
- 是否有任何内置的哈希图函数来处理 c++ 中的值输入?
- 是否有任何内置函数可以检查给定的两个数字在给定整数数组中的顺序是否相同?
- 如何在一定范围内将无锁更新索引设置为最大值
- C++ 中是否有任何内置阶乘函数?
- CLion 不索引任何外部包含路径
- 是否有任何内置函数可以告诉编译器分支是否可预测
- 如何在向量的给定索引范围内查找最小元素
- 我需要在C /C#中使用图形.我可以使用任何内置的C /C#库
- 是否有任何内置类可以处理C 中的大整数值
- 向量和索引的内积错误
- c ++中是否有任何内置功能可以在计划的时间运行任务
- 是否有任何内置的 UTF 在 c++ 在窗口中
- 在VC++2010中执行任何内置的ARRAY函数
- C++:如何在不使用任何内置函数的情况下将字符串转换为整数
- 对复杂度为0(1)的索引范围内的值求和
- 是否有任何内置的CUDA函数允许CUDA内核向主机代码报告错误?
- 仅更新索引的循环队列
- 我如何在常数时间(O(1))内获得字母表(1-26)中字符的数值/位置,而不使用任何内置方法或函数