解释和我做了什么:
我的应用程序中有这个结构:
GtkWindow
GtkOverlay
GtkBox
GtkGrid
GtkButton
当我尝试应用此功能时:
GtkButton{
background-color:blue;
}
按钮具有从.button
类
我试过
GtkWindow GtkOverlay GtkBox GtkGrid GtkButton
{
background-color:blue;
}
它也不起作用
我尝试使用!重要但我猜Gtk引擎并不支持它。
问:有没有办法强制某些小部件上课或给它一个更高的优先级?
感谢提前
答案 0 :(得分:0)
要更改一个小部件的属性,只需使用CSS Selector #id。
例如(我使用GLADE构建UI,所以不确定如何在代码中执行),我在我的about选项卡上有一个按钮,我为此测试更改了,我给了它更新的#id(小部件名称)在glade中)和我的css看起来像这样(因为你没有指定语言,以下是在Linux上使用NASM的64位程序集):
szAboutCSS db 'GtkEventBox#abouttab{'
db 'background-color: black;'
db 'color: white;'
db 'font: bold;}'
db 'GtkButton#update{'
db 'font: normal;'
db 'color: red;'
db 'background: blue;}'
db 'GtkLabel#version{'
db 'color: #FF0000;'
db 'font-size: 10px}', 0
当我从UI文件中获取所需的所有对象时,在我调用gtk_widget_show_all
之前,我调用此函数将css应用于我的about选项卡:
SetAboutColor:
sub rsp, 8
%define _Provider [rsp]
call gtk_css_provider_new
mov _Provider, rax
call gdk_display_get_default
mov rdi, rax
call gdk_display_get_default_screen
mov rdx, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION
mov rsi, _Provider
mov rdi, rax
call gtk_style_context_add_provider_for_screen
mov rcx, NULL
mov rdx, -1
mov rsi, szAboutCSS
mov rdi, _Provider
call gtk_css_provider_load_from_data
mov rdi, _Provider
call g_object_unref
add rsp, 8
ret
结果: