GTK 更改按钮的颜色Julia Lang



我似乎找不到有关更改Julia上GTK 按钮颜色的任何文档。我无法在GTK 软件包中获得 @ gtkstylecontext。所以我在这里尝试了以下示例:

     obj = GtkButtonLeaf("test")
     context = ccall((:gtk_widget_get_style_context,libgtk),Ptr{GObject},(Ptr{GObject},),obj)
     provider = ccall((:gtk_css_provider_get_default,libgtk),Ptr{GObject},())
     filename = "C:/Users/Administrator/Documents/CMPT276_a5_copy/theme.css"
     GError() do error_check
     ccall((:gtk_css_provider_load_from_path,libgtk), Bool,
       (Ptr{GObject}, Ptr{UInt8}, Ptr{Ptr{GError}}),
       provider, bytestring(filename), error_check)
     end
     ccall((:gtk_style_context_add_provider,libgtk),Void,(Ptr{GObject},Ptr{GObject},Cuint),
            context,provider,priority)

代码没有任何错误编译,但按钮什么也没有发生。CSS_PROVIDER_LOAD_FROM_PATH()是否不加载.css文件?这是我能想到的唯一原因。任何帮助将不胜感激!

编辑:

priority = 1.
theme.css:
    GtkButton{
        color: red;
    }

这有效:

using GTK3_jll 
const libgtk = libgtk3
using Gtk, Gtk.ShortNames
function set_gtk_style!(widget::Gtk.GtkWidget, style::String, value::Int=600)       # thank to MeteorBizone
    sc = Gtk.GAccessor.style_context(widget)
    pr = Gtk.CssProviderLeaf(data=style)
    push!(sc, Gtk.StyleProvider(pr), value)
end
g = GtkGrid()
fg_win = GtkWindow( "Try Button")
btn = GtkButton("u22EF Push u22EF")
set_gtk_style!(btn,".text-button {font: 20px "sans";color:red}",600)
g[1,1] = btn
push!(fg_win,g)
showall(fg_win)

我填充了类text_button

最新更新