我是学生程序员,我正在使用Qt构建工作GUI,我遇到了各种问题。在我的主界面中,我有一个保存数据的QTreeWidget。同样在这个GUI中,我有按钮编辑,复制和删除,它们已经透视地连接到功能。我希望在选择多个项目时禁用编辑按钮。这是我遇到问题的地方。我认为最好的方法(再次我是学生)将是某种类型的连接语句,但我一直在查看the Qt Documentation for this widget并且无法找到任何看起来正确的东西。我希望有更多经验的人能够为此提供一些方向。
我想知道我是否应该/可以使用
void QTreeWidget::itemSelectionChanged () [signal]
如果我可以使用这个信号,请说清楚,因为我在这里打空了,因为我不知道从哪里开始将它与被选中的多个项目联系起来。
答案 0 :(得分:1)
我认为你不能仅仅在QtDesigner中完成它,如果那是你想要做的。 您可以定义自己的插槽来处理itemSelectionChanged信号。在该插槽中,您可以使用QTreeWidget的selectedItems方法来检查所选项目的数量,并根据该项目启用/禁用按钮。
答案 1 :(得分:1)
是的,这是正确的信号。例如,这里是您问题的插槽的简单实现:
void disableItems() {
QList<QTreeWidgetItem*> selection = treeWidget->selectedItems();
if(selection.size() > 1) {
//disable the gui items here
} else {
//maybe reenable items otherwise
}
}