1

http://www.pygtk.org/docs/pygtk/gtk-constants.htmlによるとSTATE_NORMAL、 、 などの 5 つの状態タイプがありますSTATE_INSENSITIVE。Table、HBox、VBox などの背景色を設定したいのですが、あらゆる種類の状態のすべての可能な色を設定しようとしました:

    style = self.get_style()
    for a in (style.base, style.fg, style.bg,
              style.light, style.dark, style.mid,
              style.text, style.base, style.text_aa):
        for st in (gtk.STATE_NORMAL, gtk.STATE_INSENSITIVE,
                   gtk.STATE_PRELIGHT, gtk.STATE_SELECTED,
                   gtk.STATE_ACTIVE):
            a[st] = gtk.gdk.Color(0, 34251, 0)

何も効果がありません。効果があるのは、手動で EventBoxes を作成し、特に既存の gtk.STATE_NORMAL 色を使用して他の色とブレンドした場合だけです。ただし、私の介入なしに gtk によって作成されたものはすべて影響を受けませんでした。

これを行うための適切な方法は何ですか?gtkrc ファイルなどを作成する必要はありません。これは、hbox、vbox などに色がなく、透明であるためですか? では、アプリケーションの一般的な色を提供するのは誰でしょうか?

4

3 に答える 3

2

主にgoogle-fu(ここにはウィンドウはありません)で、「回答」として投稿して、フォーマットを少し改善します。hereのような本格的な gtkrc を試してみて、成果が得られるかどうかを確認してください。thisthisに基づく場所は異なるようです。そのため、誰かがそれを見つける決定論的アプローチを持っていない限り、filemon は賢明なアプローチになる可能性があります。

ほとんどの場合、この種のアプリのユーザーであるため、いつでも、プログラマーが「最高」であると考えたものによってハードコードされたものよりも、gtkrc からの設定を好みます。

于 2009-08-06T23:23:24.527 に答える
1

これは、VBox と Hbox に関連付けられた Window がないためです。 ここをクリックして、ウィンドウのないその他のウィジェットを表示します。イベント ボックスを作成し、イベント ボックス内に HBox または VBox を追加します。

于 2009-08-07T00:47:49.587 に答える
0

self.set_style(style)スタイルを変更した後に呼び出す必要があります。あなたのコードをテンプレートとして使用し、その行を追加するとすべての背景が緑色になります。

于 2011-03-22T23:07:37.317 に答える