【发布时间】:2015-03-05 16:33:57
【问题描述】:
我正在开发一个带有 QTreeWidgetItem 的 Qt/C++ 应用程序。创建新项目时,我将其设置为 setEditable,它允许我直接在 UI 中填写新名称。
我目前正在使用itemChanged 如下所示来捕获更改并保存它。默认情况下,我将新项目名称设置为新文件夹,之后我可以手动更改它。我的问题是,当我创建项目时,它变得可编辑,如果我按 Enter 或 Esc 而不进行任何更改,则不会生成 itemChanged。
我是否可以使用基于 SIGNAL/SLOT 的命令来捕获 Enter/Esc 事件。目标是触发相同的信号
connect(this, SIGNAL(itemChanged(QTreeWidgetItem*, int)),
this, SLOT(onTreeItemChanged(QTreeWidgetItem*)));
我想将 Enter/Esc 信号连接到 onTreeItemChanged,就像对 itemChanged 所做的那样。
我尝试过使用itemActivated,但是即使按下Enter也不会触发。
connect(this, SIGNAL(itemActivated(QTreeWidgetItem*, int)),
this, SLOT(onTreeItemChanged(QTreeWidgetItem*)));
任何想法,
赛博
【问题讨论】:
-
不,这就是我添加事件未触发的原因
标签: c++ qt qtreewidget qtreewidgetitem