CSS 来自代码?如何直接从 Vala 使用 CSS 装饰?
CSS from code? How to use CSS decoration directly from Vala?
如何直接从 Vala 使用 CSS 定制?不像这个 中的文件。假设我希望通过单击按钮将其变为红色,而不使用外部 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+ 小部件。
样式上下文具有添加、删除和查询 class 等方法
https://valadoc.org/gtk+-3.0/Gtk.StyleContext.html
label.get_style_context().add_class("my_class");
由于您只需设置样式提供程序一次,我认为开销不会太大。
对于正在阅读本文的任何人,我已将带文件和不带文件的示例发布到 Git https://gitlab.com/gavr123456789/vala-css-examples/tree/master
如何直接从 Vala 使用 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+ 小部件。
样式上下文具有添加、删除和查询 class 等方法
https://valadoc.org/gtk+-3.0/Gtk.StyleContext.html
label.get_style_context().add_class("my_class");
由于您只需设置样式提供程序一次,我认为开销不会太大。
对于正在阅读本文的任何人,我已将带文件和不带文件的示例发布到 Git https://gitlab.com/gavr123456789/vala-css-examples/tree/master