【问题标题】:Button not getting styled in PyGI按钮在 PyGI 中未设置样式
【发布时间】:2014-06-28 11:19:35
【问题描述】:

我正在尝试创建一个红色而不是默认颜色的按钮。我通过CssProvider() 应用样式,但按钮的颜色没有改变。我做错了什么?

代码如下:

from gi.repository import Gtk, Gdk

CSS = """
GtkButton {
    background-color: red;
}
"""

class MyWindow(Gtk.Window):

    def __init__(self):
        Gtk.Window.__init__(self, title="Theme")
        self.resize(640, 480)
        self.connect("delete-event", Gtk.main_quit)

        cssprovider = Gtk.CssProvider()
        cssprovider.load_from_data(CSS)

        screen = Gdk.Screen.get_default()
        sc = Gtk.StyleContext()
        sc.add_provider_for_screen(screen, cssprovider,
                Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)

        btn = Gtk.Button(label="Click")
        self.add(btn)

win = MyWindow()
win.show_all()
Gtk.main()

【问题讨论】:

  • 这可能是一个错误。将 CSS 更改为“背景:红色”为我解决了这个问题。在其他小部件上,背景和背景颜色似乎都可以工作。

标签: python gtk3 pygobject


【解决方案1】:

问题是背景图像优先于背景颜色,前者很可能已经在主题中设置(按钮渐变)。您可以使用“背景”属性或使用“背景颜色”以及取消设置“背景图像”来强制完全替换背景:

GtkButton {
    background: red;
}

或:

GtkButton {
    background-image: none;
    background-color: red;
}

见:https://bugzilla.gnome.org/show_bug.cgi?id=728027

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    • 2015-09-24
    • 2011-05-28
    • 2021-11-27
    • 1970-01-01
    相关资源
    最近更新 更多