Qt:禁用QAction可选择,以便用户可以将其切换回启用状态

时间:2017-05-19 19:22:27

标签: c++ qt treeview contextmenu

我有一个QTreeView,对于这个树视图的项目,我实现了一个切换功能。用户右键单击项目并显示上下文菜单,如果用户选择切换,则应在启用和禁用之间切换项目的状态。

禁用该项目没有问题。但是,一旦禁用,即使我将其设置为可选项,该项目仍然无法选择,因此用户无法将项目切换回启用状态。以下是我目前的尝试方式。任何帮助将不胜感激。

QAction* toggleItem = new QAction("Toggle", &menu);
connect(toggleItem, SIGNAL(triggered(bool)), this, SLOT(toggle_item()));

...

void MyClass::toggle_item() {

    bool currentItemStatus = m_selectedItem->isVisible();
    m_selectedItem->setEnabled(!currentItemStatus);
    m_selectedItem->setSelectable(true);

}

1 个答案:

答案 0 :(得分:0)

禁用商品的含义是准确的:它表示商品无法与互动。

如果您打算与该项目互动,则不得禁用该项目 - 这就是全部。使用另一个可视指示,可能使用前景和/或后台角色。