如何在 Qt 5.6 中创建切换菜单项

How to create toggle menu item in Qt 5.6

我需要在 Qt 菜单中有一个 Show/Hide 项,以便当用户单击 Hide 时隐藏某个小部件并且菜单项更改为 Show,并且同样,如果用户单击 Show,将显示小部件并且菜单项更改为 Hide。这在 Qt 5.6 中如何实现?

您可以使用 setCheckable(true) 函数向 QMenu 添加一些 QAction。之后你可以使用 SIGNAL/SLOT 方法来做你想做的事,例如:

.H文件:

    <...>
    QAction *_togAct;
    <...>
public slots:
    void change(bool set);

.CPP 文件:

void YourClass::change(bool set)
{
    if(set) {
        _togAct->setText("Show");
        <...>
    }
    else {
        _togAct->setText("Hide");
        <...>
    }
}

class中的某处:

_togAct = new QAction(tr("Hide"), this);
_togAct->setCheckable(true);
connect(_togAct, &QAction::toggled, this, &YourClass::change);
men->addAction(_togAct);