ウェブサイト検索

Ubuntu 23.10でQtアプリのウィンドウボーダーとシャドウの問題を修正する


Ubuntu 23.10でアプリケーションにウィンドウボーダーやシャドウがありませんか?Qt UIツールキットに基づくアプリケーションのための簡単な対処法はこちらです。

Linuxデスクトップでは、アプリケーションは異なるUIツールキットを使用して構築されています。GNOME、Cinnamon、XFCEはGTK3/4を使用し、KDEとLxQtはQtを使用してアプリケーションを作成しています。

UbuntuはデフォルトでGNOMEをデスクトップ環境として使用していますが、ユーザーはqbittorrent、ksnipスクリーンショットツール、kdenliveビデオエディタなどのQtアプリケーションも使用できます。

Ubuntu 23.10 では、Qt アプリケーションが奇妙に見えます。影のない非常に薄いボーダーがあり、ほぼボーダーレスのように見えます。これは、Debian 12 bookworm でも発生する上流の問題です。

Ubuntu 23.10のQtアプリ

もしあなたが同様の問題を抱えているなら、このチュートリアルでは2つの方法でその問題を解決(回避)する方法を示します。

  • xcb QPA プラグイン – X11 上で実行される Qt アプリ用。
  • QGnomePlatform テーマ - GNOME へのQtアプリの統合、しかし今のところUbuntuでQt6のサポートが不足しています。

注意: Ubuntuでは「オプション1」と「オプション2」の両方を行うことができます。それらは互いに衝突しません。

オプション1: xcb QPA環境を設定する

ほとんどのQtアプリがX11で動作している場合、このオプションは良い選択です。

1. 「ファイル」を開くだけで、Ctrl+Hを押して隠しファイル/フォルダーを表示します。

次に、.profileファイルを見つけて、右クリックして「テキストエディタで開く」を選択します。

2. ファイルが開いたら、スクロールダウンして最後に新しい行を追加してください:

export QT_QPA_PLATFORM=xcb

ファイルを保存した後、ログアウトして再度ログインしてください。それから、Qtアプリケーションを起動して結果を確認してください。

ヒント:ログアウトせずに戻す場合は、Ctrl+Alt+T を押して端末を開くことができます。その後、コマンド export QT_QPA_PLATFORM=xcb を実行して、この端末ウィンドウの環境を設定します。最後に、この端末からQtアプリを起動してください。

オプション2: QGnomePlatformテーマを使用する

Fedora Linuxには、QtアプリケーションができるだけGNOME環境に適合するようにするためのQGnomePlatformプロジェクトがありますが、QAdwaitaDecorationsへの移行によりもはやメンテナンスされていません。

テーマは素晴らしく機能し、デスクトップのカラースタイルに応じてQtアプリを自動的にライトモードとダークモードに切り替えることもできます。

Ubuntu 23.04 と Ubuntu 23.10 には、システムリポジトリにパッケージが含まれていますが、残念ながら Qt5 アプリ用のみです!

1. まず、キーボードでCtrl+Alt+Tを押してターミナルを開きます。ターミナルが開いたら、テーマパッケージをインストールするためのコマンドを実行します:

sudo apt install qgnomeplatform-qt5

2. 次に、「ファイル」を開き、Ctrl + Hを押して隠しファイルを表示します。それから、‘.profile‘ファイルを編集し、最後に新しい行を追加してください:

export QT_QPA_PLATFORMTHEME='gnome'

最後に、ログアウトして再ログインして変更を適用します。

「オプション1」と「オプション2」の両方を実行した後、私のすべてのQtアプリケーションはネイティブのウィンドウボーダーを持っていますが、Qt6ベースのqBittorrentは今もGNOMEにうまくフィットしていません。

このチュートリアルの後のUbuntu 23.10のQtアプリ

Waylandに対してQtアプリを実行する

‘オプション1’を実行した後、あなたのQtアプリケーションはX11に対して実行されます。

Waylandでアプリを実行する必要がある場合は、ターミナルからアプリを起動してください。例えば、kdenliveをWaylandを使って起動するには:

env QT_QPA_PLATFORM=wayland kdenlive

ヒント: 一部のアプリがバックグラウンドで静かに実行されている可能性があります。同様のコマンドを実行する前に、まずそれを閉じる必要があります。

または、アプリのショートカットファイル(通常は /usr/share/applications の下)を編集し、'Exec' の値を変更して環境を設定します。

例えば、Kdenliveのアプリショートカットを編集して、Waylandで実行できるようにします:

sudo gnome-text-editor /usr/share/applications/org.kde.kdenlive.desktop

関連記事: