css - Gtk3 css 应用类不起作用?

标签 css gtk gtk3

解释和我的尝试:

我的应用程序中有这个结构:

GtkWindow
   GtkOverlay
      GtkBox
         GtkGrid
            GtkButton

当我尝试应用它时:

    GtkButton{
     background-color:blue;
}

按钮具有从 .button 类应用的默认样式

我试过了

GtkWindow GtkOverlay GtkBox GtkGrid GtkButton
{
background-color:blue;
}

还是不行

我尝试使用 !important 但我猜 Gtk 引擎不支持它。

问:有什么方法可以强制某些小部件上类或赋予它更高的优先级?

谢谢提前

最佳答案

要更改一个小部件的属性,只需使用 CSS 选择器#id。

例如(我使用 GLADE 构建 UI,所以不确定如何在代码中执行),我在我的关于选项卡上有一个按钮,我为这个测试更改了它,我给它更新的#id(小部件名称在林间空地)和我的 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 应用到我的“关于”选项卡:

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

结果: enter image description here

关于css - Gtk3 css 应用类不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27483163/

相关文章:

javascript - HTML 的许多类名会影响性能吗?

html - CSS Transform 转换到窗口中心

python - Gtk3/Gnome 3 彩色按钮 : apply ".needs-attention" css styles

c++ - GTK:完全摆脱系统主题/CSS

c - 如何设置指向结构的 Gtk gpointer?

javascript - 如何使网站上的 tfl 小部件变大

html - Bootstrap 侧边栏不可滚动 100% 高度

c - 使用 GMenu 的菜单中的大间隙

c - 如何使 gtktextview 在到达窗口边框时下降到下一行?

python - 如何链接一组切换按钮,如单选按钮?