簡體   English   中英

QT文件菜單未集成到標題欄中

[英]QT File menu not integrating into title bar

我正在QT Creator 3.5.1中編寫基本的GUI應用程序,並且正在使用QT 5.5。 我已經通過他們的網站下載了QT / QT創建者。 我目前正在運行Ubuntu 15.04 64位。

我遇到有關將菜單欄集成到標題欄的問題。 問題是沒有集成發生(菜單欄沒有出現在標題欄中)。 菜單欄將顯示在過去的位置,在瓷磚欄下方。 這是正在發生的情況的圖像:

文件菜單問題

我該如何解決這個問題?

更新:

我通過apt-get和qt creator安裝了qt 5.4.1。 對此進行編譯時,標題欄集成有效! 所以問題是,有什么不同? 與我一起開發的人員正在使用QT 5.5.1,我想使用與他們相同的版本。 這次我可以做些別的事情嗎?

我發現的獨特方式是在此博客中 他聲稱這種方法可在Qt Creator上使用,但我已經在Ubuntu 32/64位Qt5應用程序(由我開發)上進行了測試,而且似乎也能正常工作!

這些步驟是:

  1. 打開終端
  2. 輸入sudo apt-get install libgtk2.0-dev libdbusmenu-qt5-dev
  3. 使用CD命令設置當前目錄(appmenu項目將位於此處)
  4. 輸入命令apt-get source appmenu-qt5

現在,博客仍在使用命令行,但是下一步可以通過在Qt Creator中打開項目來完成(該項目位於當前目錄中)。

  1. 使用某些文本編輯器(當然可以是Qt Creator),編輯appmenu/src/src.pro的以下行:

    配置+ = X11 link_pkgconfig調試

    PKGCONFIG + = dbusmenu-qt5 gtk + -2.0

    DESTDIR = ./

到(如果需要動態庫):

CONFIG += X11 link_pkgconfig
PKGCONFIG += dbusmenu-qt5 gtk+-2.0

或(如果您需要靜態鏈接的庫):

CONFIG += X11 link_pkgconfig static
PKGCONFIG += dbusmenu-qt5 gtk+-2.0
  1. 使用Qt Creator打開項目(如果尚未完成),請選擇構建模式(發布模式似乎較小)並進行構建。

  2. 如果成功構建(作為動態庫),則將在Qt5安裝文件夾/plugins/platformthemes有一個名為libappmenu-qt5.so的插件。 要獲得菜單集成,只需將庫放在目標應用程序(包括Qt Creator)的platformthemes子文件夾中。

或者,如果成功構建(作為靜態鏈接庫),則在Qt5安裝文件夾/plugins/platformthemes內將有一個文件libappmenu-qt5.a 這是靜態庫。 要將其與您的應用集成,請添加到您的項目文件中:

QT       +=  core-private gui-private platformsupport-private dbus widgets

LIBS     += $$[QT_INSTALL_DATA]/plugins/platformthemes/libappmenu-qt5.a

CONFIG    += X11 link_pkgconfig
PKGCONFIG += dbusmenu-qt5 gtk+-2.0

並到您的main.cpp

#include <QtPlugin>

Q_IMPORT_PLUGIN(AppMenuPlatformThemePlugin)

int main(int argc, char *argv[])
...

這應該是結果:

Qt創作者

編輯(在構建為動態庫時有效) :請注意,您無需重新編譯Qt應用程序或Qt Creator。

對於Qt Creator,您需要將libappmenu-qt5.so放置在Qt安裝文件夾中: /Tools/QtCreator/lib/Qt/plugins/platformthemes

如果你想重新分配你的Qt應用程序,只需分享您的可執行文件的文件夾內的文件夾platformthemeslibappmenu-qt5.so里面。 像其他任何Qt插件一樣。

編輯2:如果您不需要額外的依賴性,也可以構建靜態鏈接的插件。

您可以嘗試將QMenuBar對象的“ nativeMenuBar ”屬性設置為false 因為此屬性的默認值為true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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