QTreeWidgetItem更改 - 检测Enter / ESC

时间:2015-03-05 16:33:57

标签: c++ qt qtreewidget qtreewidgetitem

我正在开发一个带有 QTreeWidgetItem 的Qt / C ++应用程序。创建新项目时,我将其设置为setEditable,并允许我直接在UI中填写新名称。

我目前正在使用itemChanged,如下所示,以捕获更改并保存。默认情况下,我将新项目名称设置为新文件夹,然后我可以手动更改它。我的问题是,当我创建项目时,它变得可编辑,如果我按 Enter Esc 而不做任何更改,则不会生成itemChanged。< / p>

是否有基于SIGNAL / SLOT可以使用的命令可以捕获 Enter / Esc 事件。目标是触发相同的信号

connect(this, SIGNAL(itemChanged(QTreeWidgetItem*, int)),
        this, SLOT(onTreeItemChanged(QTreeWidgetItem*)));

我想将{kbd>输入 / Esc 信号连接到onTreeItemChanged,因为itemChanged已完成。

我已尝试使用itemActivated,但即使按下 Enter 也不会触发。

connect(this, SIGNAL(itemActivated(QTreeWidgetItem*, int)),
        this, SLOT(onTreeItemChanged(QTreeWidgetItem*)));

任何想法,

的Seb

1 个答案:

答案 0 :(得分:0)

很抱歉写这个回答,但我仍然无法评论:

我有一些(也许)类似的问题涉及从QCombobox派生的类,它有一些特殊行为,何时显示弹出窗口以及何时不显示。

每次返回都被按下了,但它仍然是 QEventKeyEvent ,解决方案是捕获 QEvent :: Shortcut ,因为该元素将此键解释为接受的快捷方式。

- 编辑 - 在这种情况下,我经常安装一个事件fiolter,让它只是将事件写入输出,使用switch语句过滤掉不感兴趣的元素,直到我得到罪魁祸首。

相关问题