首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyGtk3如何更改应用程序主题?

PyGtk3如何更改应用程序主题?
EN

Stack Overflow用户
提问于 2017-03-18 23:28:49
回答 2查看 2.6K关注 0票数 2

我尝试了使用rc_parse方法(“path/to/Hooli/gtk-3/gtk.css”)代码,但它不起作用。这个问题很简单,但问题的解决并不容易。如何改变我的gtk应用主题?或者如何在我的gtk应用程序上使用自定义主题?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-15 11:26:44

代码语言:javascript
复制
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk as gtk

settings = gtk.Settings.get_default()
settings.set_property("gtk-theme-name", "Numix")
settings.set_property("gtk-application-prefer-dark-theme", False)  # if you want use dark theme, set second arg to True

# getting all existing properties #

for i in settings.list_properties():
    print(i)

这段代码在windows,linux,.上运行得非常正确。我希望这能解决你的问题

票数 7
EN

Stack Overflow用户

发布于 2017-03-19 15:32:40

你把旧的方式和新的CSS方式混合在一起。

我在pygobject树的demos文件夹中编写了一些示例,最简单的例子是:

accordion.py

简而言之,您必须准备css:

accordion.css

该文件被加载到Gtk.CssProvider()中。

代码语言:javascript
复制
    provider = Gtk.CssProvider()
    provider.load_from_data(bytes.get_data())

函数apply_css()加载的

代码语言:javascript
复制
def apply_css(self, widget, provider):
    Gtk.StyleContext.add_provider(widget.get_style_context(),
                                  provider,
                                  Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)

    if isinstance(widget, Gtk.Container):
        widget.forall(self.apply_css, provider)

运行完整的示例以更好地了解它是如何工作的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42881112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档