没事儿找事儿————gtk学习(给窗体添加按钮)

来源:互联网 发布:淘宝删差评链接 编辑:程序博客网 时间:2024/06/06 09:23

       上一篇完善了一下窗体,但是仅仅一个窗体没有什么用,我们需要大量的其他控件。那么我们慢慢来。先从最基本的按钮开始!在上篇的基础上稍微修改代码。

#include<gtk/gtk.h>void on_button_clicked(GtkWidget *button,gpointer userdata){        g_print("你好,你已经点击了我");        g_print("%s\n",(gchar *)userdata);        gtk_button_set_label(GTK_BUTTON(button),(gchar *)userdata);}int main(int argc, char *argv[]){        GtkWidget *window;        GtkWidget       *button;        gchar *str = "I love gtk!";        gtk_init (&argc, &argv);        window = gtk_window_new (GTK_WINDOW_TOPLEVEL);        gtk_window_set_title (GTK_WINDOW (window), "Hello World 添加按钮");        gtk_window_set_default_size(GTK_WINDOW(window),400,300);        gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);        gtk_container_set_border_width(GTK_CONTAINER(window),40);        g_signal_connect(G_OBJECT(window),"delete_event",G_CALLBACK(gtk_main_quit),NULL);        button = gtk_button_new_with_label("点击我");        g_signal_connect(G_OBJECT(button),"clicked",G_CALLBACK(on_button_clicked),(gpointer)str);        gtk_container_add(GTK_CONTAINER(window),button);        gtk_widget_show (button);        gtk_widget_show (window);        gtk_main ();        return 0;}


        gtk控件是统一用GtkWidget类型来管理的,按钮控件也不例外。我们可以用gtk_button_new来创建一个不显示任何东西的按钮。也可以用gtk_button_new_with_label来创建一个带有文字标签的按钮。
       gtk函数的特色是以gtk开头,用下划线连接。第二个词表示控件的类型,后面的词表示要做的动作。比如new_with_label。set_default_size和set_position等等基本能见其名知其意。
      gtk中的控件摆放采用容器这个概念。gtk所有的控件能分成两类,一类是能容纳其他控件的容器,一类是不能容纳其他控件的非容器控件。容器控件有分成能容纳多个控件的容器和只能容纳一个控件的容器。
      窗口控件也是一种容器,它可以容纳按钮控件。gtk_container_add函数的作用是将第二个参数代表的控件加入到,第一个参数
 所代表的容器中来。第一个参数是GtkContainer型的指针。所有需要GTK_CONTAINER这个宏来进行转换。

0 0
原创粉丝点击