1
私はポップアップとしてカスタムメニューを作成しました。 addActionを使用すると、アイテムは垂直に配置されます。 QMenu項目を水平に整列することは可能ですか?QMenuアイテムを水平方向に並べ替えます。
私はポップアップとしてカスタムメニューを作成しました。 addActionを使用すると、アイテムは垂直に配置されます。 QMenu項目を水平に整列することは可能ですか?QMenuアイテムを水平方向に並べ替えます。
ええ、そうです。あなたはあなた自身の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