1. 程式人生 > >一個gtk3的css使用的最簡單的demo

一個gtk3的css使用的最簡單的demo

 

首先裝好gtk3的依賴,不管是fedora還是ubuntu裝好之後執行:

pkg-config --cflags --libs "gtk+-3.0" 

能正常顯示gtk3的依賴情況說明gtk3已經裝好,之後編譯:

gcc css-demo.c `pkg-config --cflags --libs gtk+-3.0`

執行。。。

#include <stdio.h>
#include <gtk/gtk.h>
#include <stdlib.h>

void setCss(GtkWidget *widget, const gchar *data)
{
    GtkCssProvider *provider = gtk_css_provider_new ();
    GtkStyleContext *context = gtk_widget_get_style_context(widget);
    gtk_css_provider_load_from_data(provider, data, -1, NULL);
    gtk_style_context_add_provider(context, GTK_STYLE_PROVIDER(provider), GTK_STYLE_PROVIDER_PRIORITY_USER);
    g_object_unref (provider);
}

int main(int  argc, char *argv[]) {
    GtkWidget *window;
    gtk_init(&argc, &argv);
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_window_set_title(GTK_WINDOW(window), "hello, ubuntu gtk");
    g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
    gtk_widget_show(window);
    setCss (window, "window{border-radius:50px;background-color:green}");
    gtk_main();
    return 0;
}

setCss (window, "window{border-radius:50px;background-color:green}");這一行是設定css樣式的程式碼,裡面的內容大家可以去研究一下css的語法,每個控制元件都有什麼樣的樣式。這裡只給大家講述我們是如何呼叫gtk的css的介面的。