1

Python Gtk3 バインディングを使用する Python で書かれた小さなアプリケーションがあります。アプリケーションの一部は、次のようにシステム アイコン テーマからアイコンを読み込みます。

def get_icon(name):
    from gi.repository import Gtk
    icon_theme = Gtk.IconTheme()
    if icon_theme.has_icon(name):
        return icon_theme.load_icon("status-red", 32, 0)

これはまさに私が望んでいることです-アイコンをロードしてGdkPixbuf.Pixbufインスタンスを提供します。

問題は、単体テストの実行時に発生します。このコードをテストするテストがあり、開発者のマシンでテストを実行するとすべて正常に動作します。

ただし、テストはパッケージがビルドされる前に (CI プロセスの一部として) 自動的に実行され、アプリケーション パッケージはヘッドレス サーバー上でビルドされます。私の質問は次のとおりです。X11 を実行する必要なく、Gtk3のクラスだけを使用する方法はありますか?IconTheme

4

1 に答える 1

2

DISPLAY なしで X11 に対してコンパイルされた gtk+ を使用する方法はありません。

ただし、仮想フレームバッファーを使用する X サーバーである xvfb 内でテストスイートをいつでも実行できます。この方法では、既存のターミナルから実行する必要はありませんが、X が必要になります。

xvfb-run.sh python testsuite.py
于 2012-04-04T19:34:22.527 に答える