#include <gtk/gtk.h>
static GtkWidget *createWindow(gint, gint, gchar *);
int main(int argc, char *argv[])
{
gtk_init(&argc, &argv);
GtkWidget *window;
GtkWidget *button;
/// *** 声明和初始化必须在一起
GValue value = G_VALUE_INIT;
/// *** 初始化value的数据类型
g_value_init(&value, G_TYPE_INT);
/// *** 赋值
g_value_set_int(&value, 20);
/// *** 打印
g_print("The value is %d\n", g_value_get_int(&value));
/// *** window
window = createWindow(200, 200, "Properties");
/// ***button
button = gtk_button_new_with_label("Click");
/// *** 使用GValue
g_object_set_property(G_OBJECT(button), "margin", &value);
/// ***
g_value_unset(&value);
g_value_init(&value, G_TYPE_STRING);
g_value_set_string(&value, "NEW");
g_object_set_property(G_OBJECT(button), "label", &value);
gtk_container_add(GTK_CONTAINER(window), button);
gtk_widget_show_all(window);
gtk_main();
}
static GtkWidget *createWindow(gint width, gint height, gchar *title)
{
GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_size_request(window, width, height);
gtk_window_set_title(GTK_WINDOW(window), title);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gtk_container_set_border_width(GTK_CONTAINER(window), 25);
g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL);
return window;
}
Gtk Properties(2)
最新推荐文章于 2021-06-20 11:13:49 发布