2017-07-10 8 views

答えて

1

ええ、そうです。あなたはあなた自身のQWidgetActionを実装し、アクションを表示します水平レイアウトでQToolButtonを追加することができます。

class MyAction : public QWidgetAction 
{ 
public: 
    MyAction(QObject * parent) :QWidgetAction(arent) {} 
    void releaseWidget(QWidget * widget) {widget->deleteLater();} 
    QWidget * requestWidget (QWidget * parent) { 
     //Then implement your own widget 
     QWidget* widget = new QWidget(this); 
     widget->setLayout(new QHBoxLayout(wdiget)); 
     widget->layout()->addWidget(new QToolButton("Example")); 
     return widget; 
    } 
}; 

他の方法をそのサブクラス化せずに手動でウィジェットを設定するには:

QWidgetAction * wa = new QWidgetAction(this);  
wa->setDefaultWidget(new QPushButton("Default")); // Example a pushbutton 

をそしてそれを使用したいですQMenuでは、他のアクションや別のウィジェットを追加できます:

MyWidgetAction *mwa = new MyWidgetAction(this); //3 
ui->menuBar->addAction(mwa); //3 - noop. nothing added to menu bar 
関連する問題