【问题标题】:Multi-color text in one Gtk.Label一个 Gtk.Label 中的多色文本
【发布时间】:2016-10-16 15:40:31
【问题描述】:

我正在使用一个 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_markup 调用并使用 css 来设置它的样式。我真的必须为它创建三个单独的标签吗?

【问题讨论】:

    标签: python css python-3.x gtk gtk3


    【解决方案1】:

    可以使用 CSS 为 Gtk.Label 的子字符串设置样式,尽管它确实需要一些解决方法。

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

    基本上,它涉及临时将另一个样式类添加到小部件的上下文中,以从您的 CSS 中获取额外的样式,然后将其转换为 Pango 标记。在构建标签时以及在样式更新时调用format_ui_string()style-updated 信号。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-30
      • 2020-08-23
      相关资源
      最近更新 更多