2012-01-02 10 views
6

Muszę umieścić QPushButton wewnątrz QMenu. Czy to możliwe, a jeśli tak, to w jaki sposób?Jak umieścić przycisk w elemencie QMenu lub QAction?

chcę osiągnąć coś takiego:

image

+0

Co chcesz zrobić? Przycisk wewnątrz menu brzmi jak bardzo dziwny element interfejsu użytkownika - jak powinien działać? – Mat

+0

Nowa QAction powinna zostać dodana do QMenu po naciśnięciu przycisku. – liri2006

Odpowiedz

9

QWidgetAction jest to, czego szukasz. To jest to, co jest na qt docs

Klasa QWidgetAction rozciąga QAction przez interfejs do wprowadzania niestandardowych widgetów do działania pojemniki oparte

Więc w zasadzie daje niestandardowego UI do QAction zgodnie z tym co QWidget zdać do tego. Użyłem QWidgetAction, aby pokazać pole wyboru jako elementy QMenu.

QCheckBox *chkBox = new QCheckBox(menu); 
chkBox ->setText("MyCheckBox"); 
QWidgetAction *chkBoxAction= new QWidgetAction(menu); 
chkBoxAction->setDefaultWidget(chkBox); 
menu->addAction(chkBoxAction); 

Następnie można odpowiednio obsługiwać sygnały z pola wyboru.

0

Jeśli chcesz tylko element menu, aby mieć stan, można użyć Rejestrowalne własność QAction:

rotateAct = new QAction(QIcon(":/images/Mouse/Rotate.png"), tr("&Rotate"), this); 
rotateAct->setCheckable(true); 
Powiązane problemy