4

アプリケーションのすべてのウィジェットにデフォルト スタイルを設定したいと考えています。このページを見つけて、機能があることを読みましたset_default_style()。問題は、どこにも見つからないことです。

魔女のパッケージ/モジュール/クラスで、この関数を見つけることができますか? メソッドを使用してすべてのウィジェットのスタイルを設定しないようにする他の方法はありますgtk.Widget.set_style()か?

4

2 に答える 2

6

Widget.set_default_style() は 3.0 以降非推奨です。実行しているバージョンについては言及していませんが、先に進んで 3.x であると想定します。

必要なのはGtk.CSSProvider (文字列または css ファイルから作成できます) であり、このカスタム スタイル プロバイダーをスタイル コンテキストにアタッチします。このようなもの:

style_provider = Gtk.CssProvider ()

css = """
GtkWindow {
    background-color: #F00;
}
"""

style_provider.load_from_data (css);

Gtk.StyleContext.add_provider_for_screen (Gdk.Screen.get_default(), 
                                          style_provider,
                                          Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);

正確な css 形式の詳細については、CSSProvider のドキュメントを参照してください。

編集:実際には、タイトルで pygtk に言及しています-それは GTK+ 2.x を意味すると思いますか? その場合、答えは私が投稿したものではありません。私は本当に昔のやり方を覚えていません。ごめん。

于 2013-11-02T12:15:15.533 に答える