我发现的独特方式是在这个博客中。他声称这种方法适用于 Qt Creator,但我已经在 Ubuntu 32/64 位 Qt5 应用程序(由我开发)上进行了测试,它似乎也可以正常工作!
步骤是:
- 打开终端
- 进入
sudo apt-get install libgtk2.0-dev libdbusmenu-qt5-dev
- 使用 CD 命令设置当前目录(appmenu 项目将位于此处)
- 输入命令
apt-get source appmenu-qt5
现在,博客仍然使用命令行,但接下来的步骤可以通过在 Qt Creator 中打开项目来完成(项目在当前目录中)。
使用一些文本编辑器(当然可以是 Qt Creator),编辑以下行appmenu/src/src.pro
:
CONFIG += 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
. 要获得菜单集成,只需将 lib 放在platformthemes
目标应用程序(包括 Qt Creator)的子文件夹中。
或者,如果构建成功(作为静态链接库),您将在 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:如果您不想要额外的依赖项,也可以构建静态链接插件。