[英]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應用程序(由我開發)上進行了測試,而且似乎也能正常工作!
這些步驟是:
sudo apt-get install libgtk2.0-dev libdbusmenu-qt5-dev
apt-get source appmenu-qt5
現在,博客仍在使用命令行,但是下一步可以通過在Qt Creator中打開項目來完成(該項目位於當前目錄中)。
使用某些文本編輯器(當然可以是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
使用Qt Creator打開項目(如果尚未完成),請選擇構建模式(發布模式似乎較小)並進行構建。
如果成功構建(作為動態庫),則將在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 Creator。
對於Qt Creator,您需要將libappmenu-qt5.so
放置在Qt安裝文件夾中: /Tools/QtCreator/lib/Qt/plugins/platformthemes
如果你想重新分配你的Qt應用程序,只需分享您的可執行文件的文件夾內的文件夾platformthemes
與libappmenu-qt5.so
里面。 像其他任何Qt插件一樣。
編輯2:如果您不需要額外的依賴性,也可以構建靜態鏈接的插件。
您可以嘗試將QMenuBar對象的“ nativeMenuBar ”屬性設置為false 。 因為此屬性的默認值為true 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.