私が見つけたユニークな方法は、このブログにありました。彼は、この方法が 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
に file があります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 を再コンパイルする必要がないことに注意してください。
libappmenu-qt5.so
Qt Creator の場合、Qt インストール フォルダーに以下を配置する必要があります。/Tools/QtCreator/lib/Qt/plugins/platformthemes
Qt アプリケーションを再配布する場合は、実行可能ファイルのフォルダー内でそのフォルダーを共有するだけplatformthemes
ですlibappmenu-qt5.so
。他の Qt プラグインと同様です。
編集 2:追加の依存関係が必要ない場合は、静的にリンクされたプラグインを構築することもできます。