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

Qt: Making disabled QAction selectable so the user can toggle it back to enabled

我有一个 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);

}

disabled item 的含义很明确:这意味着该项目不能与交互。

如果您打算与该项目互动,您绝不能禁用它 - 仅此而已。使用另一种视觉指示,也许使用前景 and/or 背景角色。