2012-01-02 54 views
6

我需要在QMenu內放置QPushButton。是否有可能,如果是的話,那麼如何?如何將按鈕放在QMenu或QAction控件中?

我要實現的是這樣的:

image

+0

你到底想幹什麼?菜單中的按鈕聽起來像一個非常奇怪的UI元素 - 它應該如何工作? – Mat 2012-01-02 19:41:31

+0

按下按鈕後,應將新QAction添加到QMenu。 – liri2006 2012-01-02 19:43:57

回答

9

QWidgetAction是你在找什麼。這是什麼,是對QT文檔

的QWidgetAction類通過一個接口,用於插入自定義部件付諸行動基於容器

延伸的QAction所以基本上是按照什麼QWidget的傳遞給了一個自定義的UI來的QAction到它。 我已經使用QWidgetAction將複選框顯示爲QMenu項目。

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

然後,您可以相應地處理複選框中的信號。

0

如果你只想要一個菜單​​項有一個狀態,你可以使用的QAction的可檢查屬性:

rotateAct = new QAction(QIcon(":/images/Mouse/Rotate.png"), tr("&Rotate"), this); 
rotateAct->setCheckable(true); 
相關問題