[英]Qt creator, insert custom menu at specified place into menu bar
我用Qt創建器創建了一個菜單欄和一些菜單。 其中一個菜單必須編碼才能使用QActionGroup
功能。 現在可以很容易地將我的自定義菜單添加到菜單欄中:
printMenu = menuBar()->addMenu(tr("&Print"));
但我的菜單將位於菜單欄的最后位置。 如何在指定位置添加菜單? (例如,文件菜單后面的第二個位置)
問候
將QMenuBar :: insertMenu與QMenu :: menuAction結合使用。
例如,如果要在“幫助”菜單之前的位置動態插入“打印”菜單,可以執行以下操作:
QMenu *printMenu = new QMenu(tr("&Print"));
menuBar()->insertMenu(ui->menuHelp->menuAction(), printMenu);
如果你想在菜單欄的中間添加一個子菜單,這不是一件容易的事。 沒有直接的API來做這個,但你可以通過操縱QWidget的內部動作來解決這個問題(QMenu :: addMenu只調用QWidget::addAction(menu->menuAction())
。
從理論上講,你可以操縱QMenuBar :: actions(),但我從來沒有這樣做過。
當我不得不處理這個問題時,我只是從另一個數據集重建菜單(在你最喜歡的搜索引擎中查找qmdilib
,你會看到我的解決方案)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.