gtk - 来自代码的 CSS?如何直接从 Vala 使用 CSS 装饰?

标签 gtk gtk3 vala

如何直接从 Vala 中使用 CSS 自定义?不像这个 example与文件。假设我希望通过单击按钮将其变为红色,而不使用外部 css 文件,因为此操作对于创建具有单个字段的 css 文件来说太简单了。

我的意思是这样的:

label.set_styleSheet("font-size: 17px;")

最佳答案

您仍然需要创建一个 CssProvider,就像在您链接到的代码中一样:

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

您可以调用 load_from_data() 而不是 load_from_path() 从内存中的字符串而不是文件中加载它:

https://valadoc.org/gtk+-3.0/Gtk.CssProvider.load_from_data.html

css_provider.load_from_data(".my_class { font-size: 17px; }");
Gtk.StyleContext.add_provider_for_screen(screen, css_provider, Gtk.STYLE_PROVIDER_PRIORITY_USER);

当 CSS 提供程序加载要使用的自定义样式时,您可以使用 get_style_context () 操作每个 Gtk+ 小部件。

样式上下文有添加、删除和查询类等的方法。

https://valadoc.org/gtk+-3.0/Gtk.StyleContext.html

label.get_style_context().add_class("my_class");

由于您只需设置样式提供程序一次,我认为这不会造成太多开销。

关于gtk - 来自代码的 CSS?如何直接从 Vala 使用 CSS 装饰?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54021011/

相关文章:

c - 如何从选定的 gtk_combo_box 项目中获取字符串?

cairo - 如何在 Gtk 下创建 cairo-gl 曲面

vala - 错误 : Return value transfers ownership but method return type hasn't been declared to transfer ownership

GTK 滚动条错误

python - pygtk强制抓取键盘焦点

Perl Gtk3::ScrolledWindow 包含多个 Gtk3::TreeView child。选择一行时如何禁止 child 滚动到顶部?

vala - Vala 中的周期性任务

environment-variables - 如何访问 Vala 中的环境变量?

c - gdk_color_copy真的分配内存吗?

Ruby GNOME 图形用户界面