【问题标题】:Styling Gtk.Label object样式化 Gtk.Label 对象
【发布时间】:2021-07-30 16:39:32
【问题描述】:

我有一个 应用程序,我想设置标签窗口对象的样式,我尝试了以下方法:

 public Object createConfirm(){
        var window = new Gtk.Window ();
        var grid = new Gtk.Grid () {
            orientation = Gtk.Orientation.VERTICAL,
            column_spacing = 6,
            row_spacing = 6
        };
        window.add(grid);
        window.title = "Shutdown Confirmation";
        window.border_width = 10;
        window.window_position = Gtk.WindowPosition.CENTER;
        window.set_default_size (350, 80);
        window.destroy.connect (Gtk.main_quit);

        var label = new Gtk.Label(null);
        var label_text = "Are you sure to turn off now?";
        label.set_markup("<b>"+label_text+"</b>");
        
...

这样label.set_markup 仅成功地将标签文本加粗。当我尝试set_markup("&lt;h3&gt;"+label_text+"&lt;/h3&gt;")set_markup("&lt;span style=\"color:red\"&gt;"+label_text+"&lt;/span&gt;") 或使用&lt;b&gt; 以外的任何标签时,它不会在标签窗口上返回任何字符串。为什么会这样?是否有一个简单的解决方案,我不必使用任何额外的依赖项?

【问题讨论】:

    标签: vala gtk vala


    【解决方案1】:

    如果您不需要动态更改样式值,则推荐使用 CSS 来设置标签(和所有其他小部件)的样式。

    在您的应用启动代码中,您可以从 CSS 文件创建一个应用范围的 Gtk.CssProvider。然后,当您构建小部件时,使用 label.get_style_context().add_class() 将样式类添加到您的标签。


    标记语言看起来像 HTML,但实际上不是。 Here is a guide to the available tags and attributes。最值得注意的是,这里没有 CSS,文本样式是使用&lt;span&gt; 元素上的属性添加的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多