2023-11-23

PySide6 とダークモード

PySide (Qt for Python) は、Qt(キュート)の Python バインディングで、GUI などを構築するためのクロスプラットフォームなライブラリです。Linux/X11, macOS および Microsoft Windows をサポートしています。配布ライセンスは LGPL で公開されています。

個人用途の GUI アプリはほとんどの場合 Python/PySide6 で作っていますが、ダークモードにした場合にそういったアプリの外観がどうなるのか、ちょっと調べました。

意識しだしたダークモード

いままで、デスクトップ環境のダークモードなんて気にしていませんでしたが、最近、個人用のノート PC を持ち歩くことが増えてきました。画面の明るさを適度に落とすことがバッテリーの消耗を抑えることに効くことが判っているので、更にバッテリーを長く使えるようにするには、黒基調の画面、すなわちダークモードで使えば効果的だろうと、今更ながらダークモードに注目するようになりました。

GNOME の場合

ダークモードにしても Python/PySide6 の GUI アプリには反映されません。

GNOME の「設定」→「外観」で、「暗い」(ダークモード)に設定

例えば、calculator.py というサンプルの場合です。

GNOME ダークモードでの calculator.py の実行例

残念ながらこのように Python/PySide6 のアプリの外観には反映されませんでした。GTK のアプリケーションでないので、しかたがないのかもしれません。

  • ちなみに、Python の PyGObject [2] モジュールを pip でインストール・ビルドして、簡単な GUI アプリを作って同じように GNOME デスクトップ環境下で試してみましたが、やはり GNOME のダークモードは反映されませんでした。

KDE Plasma の場合

ひょっとするとデスクトップ環境を変えると状況が変わるかもしれないと考え、試しにノート PC に Fedora KDE Desktop (KDE Plasma 5) をインストールして同じサンプルを実行してみました。

KDE Plasma の「KDE システム設定」→「外観」

デフォルトのライトモードで同じサンプルを実行すると下記のようになります。

KDE Plasma ライトモード (Breeze) での calculator.py の実行例

ダークモードのテーマに設定すると、Python/PySide6 のアプリの外観にも反映されました。😃

KDE Plasma ダークモード (Breeze Dark) での calculator.py の実行例

これは、アプリ側の CSS で明示的に色指定していない場合に有効のようです。

デスクトップ環境の KDE Plasma 5 は Qt ライブラリを利用していますが、Qt のバージョンは 5.15.11 です。一方、PySide6 (6.6.0) は Qt 6.6.0 を利用しています。そのため、直接的な依存関係はなさそうです。なにか環境変数でテーマが設定されているのかもしれないと env コマンドで調べましたが、ちょっと見ただけでは判りませんでした。

しくみが良く判っていないものの、Python/PySide6 のアプリの外観が、デスクトップ環境の外観の設定と同期するのはとても便利です。

それでは、いっそデスクトップ環境を KDE Plasma に変えてしまおうか、とはなかなかなりません(ちょっと、ぐらっときましたが…😅)。しかし、KDE Plasma をもう少し使ってみようかと考える動機にはなります。

動作環境と使用したサンプル

下記の OS 環境で動作確認をしています。

Fedora Workstation 39
Fedora KDE Desktop 39
x86_64
Python 3.11.6
PySide6 6.6.0

使用したサンプルは以下の通りです。敢えてアプリ側で色の指定をしないようにしています。

calculator.py

参考サイト

  1. Qt for Python - Qt Wiki
  2. Overview — PyGObject

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ オープンソースへ
にほんブログ村

オープンソース - ブログ村ハッシュタグ
#オープンソース



このエントリーをはてなブックマークに追加

0 件のコメント: