Как создать пункт меню переключения в Qt 5.6

Мне нужно иметь элемент Показать / Скрыть в меню Qt, чтобы при нажатии пользователем Hide определенный виджет скрыт, а пункт меню меняется на Show, а также если пользователь нажимает Show виджет отображается, а пункт меню меняется на Hide, Как этого достичь в Qt 5.6?

1 ответ

Решение

Вы можете добавить в свой QMenu немного QAction с setCheckable(true) функция. После этого вы можете использовать метод 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");
        <...>
    }
}

Где-то в классе:

_togAct = new QAction(tr("Hide"), this);
_togAct->setCheckable(true);
connect(_togAct, &QAction::toggled, this, &YourClass::change);
men->addAction(_togAct);
Другие вопросы по тегам