我用一个css文件来设计我的界面。所以我现在有这个:
style_file = Gio.File.new_for_path('interface.css')
style_provider = Gtk.CssProvider()
style_provider.load_from_file(style_file)
Gtk.StyleContext.add_provider_for_screen(
Gdk.Screen.get_default(),
style_provider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION
)
self.label = Gtk.Label()
self.label.set_name('foobar_label')
self.label.set_markup("<span color='blue'>foo </span>"
"<span color='green'>{} </span>"
"<span color='red'>"
"bar</span>".format(baz))
我想去掉set_标记调用并使用css来设置样式。我真的要创建三个单独的标签只是为了颜色吗?在
使用CSS可以设置
Gtk.Label
的子字符串的样式,尽管这需要一些变通方法。在下面是一个用Javascript编写的示例:https://github.com/endlessm/eos-knowledge-lib/blob/d4c9666/js/app/utils.js#L170-L225
基本上,它需要临时向小部件的上下文中添加另一个样式类,从CSS中获取额外的样式,然后将其转换为Pango标记。在构造标签时,以及在样式更新时(^{} 信号),都可以调用
format_ui_string()
相关问题 更多 >
编程相关推荐