2016-05-30 2 views
0

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

ответ

1

QMenuQAction с функцией 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);