Python 在PyGObject中设置样式属性
我有一个非常简单的PyGObject应用程序:Python 在PyGObject中设置样式属性,python,gtk3,pygobject,Python,Gtk3,Pygobject,我有一个非常简单的PyGObject应用程序: from gi.repository import Gtk, Gdk class Window(Gtk.Window): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.set_border_width(5) self.progress = Gtk.ProgressBar()
from gi.repository import Gtk, Gdk
class Window(Gtk.Window):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.set_border_width(5)
self.progress = Gtk.ProgressBar()
self.progress.set_fraction(0.5)
self.box = Gtk.Box()
self.box.pack_start(self.progress, True, True, 0)
self.add(self.box)
self.connect('delete-event', Gtk.main_quit)
self.show_all()
win = Window()
Gtk.main()
我想把进度条加厚一点。所以我发现它有一个样式属性:
Name Type Default Flags Short Description
min-horizontal-bar-height int 6 r/w Minimum horizontal height of the progress bar
但是,我似乎无法以我尝试过的任何方式设置style属性
1) 我尝试使用CSS:
style_provider = Gtk.CssProvider()
css = b"""
GtkProgressBar {
border-color: #000;
min-horizontal-bar-height: 10;
}
"""
style_provider.load_from_data(css)
Gtk.StyleContext.add_provider_for_screen(
Gdk.Screen.get_default(),
style_provider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION
)
但我有一个错误:
GLib.Error:gtk css提供程序错误quark::4:37'min-horizontal-bar-height'不是有效的属性名称(3)
2) 我尝试了set\u style\u属性
方法和中描述的所有方法
(a)
self.progress.set_属性('min-horizontal-bar-height',10)
TypeError:GtkProgressBar类型的对象没有属性“最小水平条高度”
(b)
self.progress.set_style_属性('min-horizontal-bar-height',10)
AttributeError:“ProgressBar”对象没有属性“set\u style\u property”
(c)
self.progress.min\u水平条高度=10
GLib.Error:gtk css提供程序错误quark::4:37'min-horizontal-bar-height'不是有效的属性名称(3)
(d)
self.progress.props.min\u水平条高度=10
AttributeError:'gi.\u gobject.GProps'对象没有属性'min\u horizontal\u bar\u height'
(e)
self.progress.设置最小水平条高度(10)
AttributeError:“ProgressBar”对象没有属性“set\u min\u horizontal\u bar\u height”
知道如何使进度条变粗吗?在CSS中,必须在样式属性的名称前面加上破折号,并在样式属性所属的类的名称前面加上破折号:
GtkProgressBar {
-GtkProgressBar-min-horizontal-bar-height: 10px;
}
它们不是要在代码中设置的,因此没有相应的setter方法来设置
style\u get\u property()
Awesome!是否有一个很好的文档,以及如何在GTK中使用CSS进行样式设计?比如运行时单独的小部件,整个应用程序的样式等等。?我很难找到任何相关的东西。。这可能会更好,但这是一个相当不错的概述,你可以做什么。对不起,什么?这个“带有类名和破折号的前缀”到底是在哪里记录的?不管怎么说,链接页面上没有。这是一种奇怪的攻击方式。你认为我是故意把人们指向错误的页面吗?不,他们在最新版本中重新组织了CSS文档。在“描述”部分的底部。