GTK+学习记录(一)按钮和标签关联函数

来源:互联网 发布:gbox软件 编辑:程序博客网 时间:2024/05/29 03:32

程序界面:


这个就是一个用GTK+写的可视化的小例子。单击按钮就会实现+1或-1的操作。

代码如下:

#include <gtk/gtk.h>gint count = 0;char buf[5];void increase(GtkWidget *widget, gpointer label){count++;sprintf(buf, "%d", count);gtk_label_set_text(label, buf);}void decrease(GtkWidget *widget, gpointer label){count--;sprintf(buf, "%d", count);gtk_label_set_text(label, buf);}int main(int argc, char *argv[]) {GtkWidget *label;GtkWidget *window;GtkWidget *frame;GtkWidget *plus;GtkWidget *minus;gtk_init(&argc, &argv);window = gtk_window_new(GTK_WINDOW_TOPLEVEL);gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);gtk_window_set_default_size(GTK_WINDOW(window), 250, 180);gtk_window_set_title(GTK_WINDOW(window), "一个小例子");frame = gtk_fixed_new();gtk_container_add(GTK_CONTAINER(window), frame);plus = gtk_button_new_with_label("+1");gtk_widget_set_size_request(plus, 80, 35);gtk_fixed_put(GTK_FIXED(frame), plus, 50, 20);minus = gtk_button_new_with_label("-1");gtk_widget_set_size_request(minus, 80, 35);gtk_fixed_put(GTK_FIXED(frame), minus, 50, 80);label = gtk_label_new("0");gtk_fixed_put(GTK_FIXED(frame), label, 190, 58);gtk_widget_show_all(window);g_signal_connect(window, "destroy",G_CALLBACK(gtk_main_quit), NULL);g_signal_connect(plus, "clicked",G_CALLBACK(increase), label);g_signal_connect(minus, "clicked",G_CALLBACK(decrease), label);gtk_main();return 0;}