PyGTK ポップアップ メニューのテーマを変更する

PyGTK ポップアップ メニューのテーマを変更する

Google で数時間検索しましたが、もう諦めました...

アプリのポップアップ メニューの背景を変更する必要があります。システムのデフォルト テーマに設定されていますが、常に Radiance に設定する必要があります。

これを実現する方法はありますか?

これが現在の外観です。明るい色にする必要があります

答え1

ポップアップ ウィンドウのテーマを次のように設定します。

#Use Css themes
css = Gtk.CssProvider()
css.load_from_data("""
        .popup {background-color: rgba(0,0,0,0); border: 0px rgba(255,255,255,0);  border-radius: 14px; border-width: 0;  }
    """ 
Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), css,
        Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)

#Get popup parent and set rgba visual so I can do transparency
pwindow=self.popup.get_parent()
screen=pwindow.get_screen()
pwindow.set_visual(screen.get_rgba_visual())

#Give popups the popup CSS class
self.popup.get_style_context().add_class('popup')

また、ポップアップ ウィンドウを描画して、素敵なテクスチャを与えるために cairo を使用します。そのためには、その「描画」信号をコールバックに接続するだけです。

背景色を確認するには、Radiance Gtk テーマを見て、それを background-color css 設定に使用します。 で見つけることができます/usr/share/themes/Radiance/Gtk-3.0/gtk.css。透明性が必要ない場合は、上記の pwindow の項目をスキップして、ポップアップに style_context を追加するだけです。

関連情報