CSS из кода? Как использовать CSS оформление прямо из Vala? - PullRequest
0 голосов
/ 03 января 2019

Как использовать настройку CSS напрямую из Vala?Не так, как в этом примере с файлом.Допустим, я хочу, чтобы кнопка стала красной при нажатии на нее, без использования внешнего файла CSS, поскольку это действие слишком просто для создания файла CSS с одним полем.

Я имею в виду что-то вроде этого:

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

Ответы [ 2 ]

0 голосов
/ 24 февраля 2019

Для тех, кто читает это, я разместил оба примера с файлом и без файла в Git https://gitlab.com/gavr123456789/vala-css-examples/tree/master

0 голосов
/ 03 января 2019

Вам все еще нужно создать 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 загрузил пользовательские стили, которые будут использоваться, вы можете манипулировать каждым виджетом Gtk + с помощью get_style_context ().

Контекст стиля имеет методы для добавления, удаления и запроса класса и т. Д.

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

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

Поскольку вам нужно настроить поставщика стилей только один раз, я не думаю, что это слишком много.

...