多色文字合一Gtk实验室

2024-04-18 08:22:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我用一个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来设置样式。我真的要创建三个单独的标签只是为了颜色吗?在


Tags: 文件selfgtkfor界面styleprovidercss
1条回答
网友
1楼 · 发布于 2024-04-18 08:22:19

使用CSS可以设置Gtk.Label的子字符串的样式,尽管这需要一些变通方法。在

下面是一个用Javascript编写的示例:https://github.com/endlessm/eos-knowledge-lib/blob/d4c9666/js/app/utils.js#L170-L225

基本上,它需要临时向小部件的上下文中添加另一个样式类,从CSS中获取额外的样式,然后将其转换为Pango标记。在构造标签时,以及在样式更新时(^{}信号),都可以调用format_ui_string()

相关问题 更多 >