使用Python3 Pygobject造型使用CSS的所有Gtkentry小部件



我正在开发带有pygobject的GUI,并且正在尝试为所有入口小部件设计样式。从这篇文章中,我得到的印象是,我应该能够创建适用于所有gtkentry对象的CSS样式,但是由于某种原因,它在下面的代码中对我不起作用:

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, Gdk
class CompletionApp(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self)
        screen = Gdk.Screen.get_default()
        provider = Gtk.CssProvider()
        style_context = Gtk.StyleContext()
        style_context.add_provider_for_screen(
            screen, provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION
        )
        css = b"""
        GtkEntry {
            background: yellow;
        }
        """
        provider.load_from_data(css)
        self.entry = Gtk.Entry()
        self.entry.set_name("myentry")
        self.add(self.entry)
        self.connect("destroy", Gtk.main_quit)
        self.show_all()
        Gtk.main()
if __name__ == '__main__':
    win = CompletionApp()

如果我将" gtkentry"更改为CSS中的" #myentry",则可以按预期工作。谁能帮助我理解我应该做的为所有入口小部件的样式设计吗?(为了简洁起见,上面的示例只有一个条目,但是我正在处理一个有多个条目的应用程序。)

如GTK CSS概述,窗口小部件的名称应较低,而则以" GTK"开头:

entry {
    background: yellow;
}

相关内容

  • 没有找到相关文章

最新更新