QTreeWidget;在QTree中选择多个项目时禁用ui功能

QTreeWidget; Disabling ui Features when multiple Items are selected in QTree

本文关键字:项目 功能 ui QTree 选择 QTreeWidget      更新时间:2023-10-16

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

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

void QTreeWidget::itemSelectionChanged () [signal]

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

是的,这是正确的信号。例如,这里是您问题的插槽的琐碎实现:
void disableItems() {
    QList<QTreeWidgetItem*> selection = treeWidget->selectedItems();
    if(selection.size() > 1) {
        //disable the gui items here
    } else { 
        //maybe reenable items otherwise
    }
}

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