linux - 如何更改 vala 中 Gtk.Label 的字体大小?

标签 linux gtk3 vala

我是 Vala/Gtk 新手,我正在尝试更改 Gtk.Label 的字体大小,但找不到好的方法。

我发现我可以像这样使用标记:

    var welcome_message = new Gtk.Label ("<span size='17000'>Hello</span>");
    welcome_message.set_use_markup (true);

但是看起来有点hackish。 正确的做法是什么?

最佳答案

感谢 lethalman 和 nemequ。

我认为它可能对某些人有所帮助,所以这里有一个如何在 Vala 中使用 css 的小例子。

using Gtk;

public class StyleApp1 : Gtk.Window
{
    public StyleApp1() 
    {

        this.title = "Style app example";
        this.set_border_width (10);
        this.set_position (Gtk.WindowPosition.CENTER);

        this.set_default_size (350, 200);
        this.destroy.connect (Gtk.main_quit);

        var screen = this.get_screen ();
        var css_provider = new Gtk.CssProvider();

        string path = "styleapp1.css";

        // test if the css file exist
        if (FileUtils.test (path, FileTest.EXISTS))
        {
            try {
                css_provider.load_from_path(path);
                Gtk.StyleContext.add_provider_for_screen(screen, css_provider, Gtk.STYLE_PROVIDER_PRIORITY_USER);
            } catch (Error e) {
                error ("Cannot load CSS stylesheet: %s", e.message);
            }
        }

        var box = new Gtk.Box (Gtk.Orientation.VERTICAL, 10);
        this.add (box);

        var label = new Gtk.Label ("Thank you");
        box.add (label);

        var label2 = new Gtk.Label ("Stackoverflow");
        label2.get_style_context().add_class("my_class");
        box.add (label2);
    }
}

static int main(string[] args) {
    Gtk.init(ref args);

    StyleApp1 win = new StyleApp1();
    win.show_all();

    Gtk.main();
    return 0;
}

和 styleapp1.css 文件:

GtkWindow {
    font-size: 17px;
}

.my_class {
    color: pink;
}

注意:如果您使用 add_provider 而不是 add_provider_for_screen。您必须为每个要自定义的小部件使用 add_provider。

关于linux - 如何更改 vala 中 Gtk.Label 的字体大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28382196/

相关文章:

缺少 python gi.repository.gtk 菜单分隔符

gtk3 - 替代已弃用的 gtk_alignment_new

linux - 使用 vala 将 uris 插入 Gtk.Clipboard

c - 每次阅读我都必须重新打开/dev/urandom 吗?

linux - gsoap 客户端多个以太网

c - 如何从终端“按键缓冲区”读取?

c - undefined reference ... 使用 gtk 图形

linux - 运行 chroot 命令时出现错误

c - 在 Vala 中继承接口(interface) - 与基本方法不兼容

linux - 瓦拉文件导入