PySide (Qt for Python) は、Qt(キュート)の Python バインディングで、GUI などを構築するためのクロスプラットフォームなライブラリです。Linux/X11, macOS および Microsoft Windows をサポートしています。配布ライセンスは LGPL で公開されています。
個人用途の GUI アプリはほとんどの場合 Python/PySide6 で作っていますが、ダークモードにした場合にそういったアプリの外観がどうなるのか、ちょっと調べました。
意識しだしたダークモード
いままで、デスクトップ環境のダークモードなんて気にしていませんでしたが、最近、個人用のノート PC を持ち歩くことが増えてきました。画面の明るさを適度に落とすことがバッテリーの消耗を抑えることに効くことが判っているので、更にバッテリーを長く使えるようにするには、黒基調の画面、すなわちダークモードで使えば効果的だろうと、今更ながらダークモードに注目するようになりました。
GNOME の場合
ダークモードにしても Python/PySide6 の GUI アプリには反映されません。
例えば、calculator.py というサンプルの場合です。
残念ながらこのように Python/PySide6 のアプリの外観には反映されませんでした。GTK のアプリケーションでないので、しかたがないのかもしれません。
- ちなみに、Python の PyGObject [2] モジュールを pip でインストール・ビルドして、簡単な GUI アプリを作って同じように GNOME デスクトップ環境下で試してみましたが、やはり GNOME のダークモードは反映されませんでした。
KDE Plasma の場合
ひょっとするとデスクトップ環境を変えると状況が変わるかもしれないと考え、試しにノート PC に Fedora KDE Desktop (KDE Plasma 5) をインストールして同じサンプルを実行してみました。
デフォルトのライトモードで同じサンプルを実行すると下記のようになります。
ダークモードのテーマに設定すると、Python/PySide6 のアプリの外観にも反映されました。😃
これは、アプリ側の 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 |
使用したサンプルは以下の通りです。敢えてアプリ側で色の指定をしないようにしています。
参考サイト
にほんブログ村
#オープンソース
0 件のコメント:
コメントを投稿