![PyGTK 更改弹出菜单的主题](https://linux22.com/image/1114341/PyGTK%20%E6%9B%B4%E6%94%B9%E5%BC%B9%E5%87%BA%E8%8F%9C%E5%8D%95%E7%9A%84%E4%B8%BB%E9%A2%98.png)
我花了几个小时在谷歌上搜索,现在我放弃了......
我需要更改应用中弹出菜单的背景。将其设置为系统默认主题...并且我需要始终将其设置为 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 添加到弹出窗口即可。