4

私は PyGTK を使用していて、ウィジェットの色 (bg color など) を取得したいので、次のようなコードを実行します。

gdkColorToRgb = lambda gc: (gc.red//257, gc.green//257, gc.blue//257)
widget = gtk.HBox() ## for example
style = widget.get_style()
for i in range(5):
    print i, gdkColorToRgb(style.bg[i])

しかし、現在の gtk テーマ (スタイル) の色は表示されません。デフォルトのgtkテーマ用のようです(現在のテーマは暗いですが、このコードは明るい色を提供します)私はArchLinuxとPyGTK 2.24.0(GTK 2.24.5)を使用しています

4

1 に答える 1

5

私はちょうど同じ問題に遭遇し、あなたの質問を見て、解決策を見つけました:ウィジェットが実現するまで待つ必要があります。たとえば、次のようになります。

def print_style(widget):
    style = widget.get_style()
    for i in range(5):
        print i, gdkColorToRgb(style.bg[i])
gdkColorToRgb = lambda gc: (gc.red//257, gc.green//257, gc.blue//257)
widget = gtk.HBox() ## for example
widget.connect('realize', print_style)
于 2011-09-17T08:25:04.993 に答える