0

我是一名学生程序员,我正在使用 Qt 构建一个 GUI 来工作,我遇到了各种各样的问题。在我的主界面中,我有一个保存数据的 QTreeWidget。同样在这个 GUI 中,我有按钮编辑、复制和删除,它们已经透视地连接到功能。我希望在选择多个项目时禁用编辑按钮。这是我遇到问题的地方。我认为最好的方法(我再次是学生)将是某种类型的连接语句,但我一直在查看此小部件的 Qt 文档,但找不到任何似乎适合此的东西。我希望有经验的人能够为此提供一些指导。

我想知道我是否应该/可以使用

void QTreeWidget::itemSelectionChanged () [signal]

如果我可以使用这个信号,请说明一下,因为我在这里打了一个空白,因为我不知道从哪里开始将它与被选中的多个项目联系起来。

4

2 回答 2

1

是的,这是正确的信号。例如,这里是您问题的插槽的简单实现:

void disableItems() {

    QList<QTreeWidgetItem*> selection = treeWidget->selectedItems();
    if(selection.size() > 1) {

        //disable the gui items here

    } else { 

        //maybe reenable items otherwise
    }
}
于 2012-01-31T14:47:15.170 回答
1

我认为您不能仅在 QtDesigner 中做到这一点,如果那是您想要做的。您可以定义自己的插槽来处理 itemSelectionChanged 信号。在该插槽中,您可以使用 QTreeWidget 的 selectedItems 方法来检查所选项目的数量并基于此启用/禁用按钮。

于 2012-01-31T00:09:52.463 回答