簡體   English   中英

Qt創建者,將指定位置的自定義菜單插入菜單欄

[英]Qt creator, insert custom menu at specified place into menu bar

我用Qt創建器創建了一個菜單欄和一些菜單。 其中一個菜單必須編碼才能使用QActionGroup功能。 現在可以很容易地將我的自定義菜單添加到菜單欄中:

printMenu = menuBar()->addMenu(tr("&Print"));

但我的菜單將位於菜單欄的最后位置。 如何在指定位置添加菜單? (例如,文件菜單后面的第二個位置)

問候

QMenuBar :: insertMenuQMenu :: 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM