繁体   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