您的位置:首页 > 其它

C指针原理(37)-gtk

2013-12-11 16:10 225 查看
下面演示了如何在窗口中增加一个按钮,示例代码均有注释 

#include <gtk/gtk.h>

static void print_hello (GtkWidget *widget,gpointer data)

{

//这是一个回调函数,这个data表示传给回调函数的参数。

  g_print ("你好,世界\n");

}

 

static gboolean on_delete_event (GtkWidget *widget,GdkEvent *event,gpointer data)

{

//如果返回FALSE在delete_event信号处理中,GTK将发送destroy信号,否则不会,这样窗口就不会关闭。

  g_print ("delete event occurred\n");

  return TRUE;

}

 

int main (int argc,char *argv[])

{

        GtkWidget *window;

    GtkWidget *button;

    //初始化gtk应用程序

    gtk_init (&argc, &argv);

    //创造新的窗口,设置它的标题

    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

    gtk_window_set_title (GTK_WINDOW (window), "你好");

    //将delete_event信号绑定在on_delte_devent回调函数上,传递的参数为NULL

            g_signal_connect (window, "delete-event", G_CALLBACK (on_delete_event), NULL);

    //将destroy信号绑定在gtk_main_quit回调函数上,传递的参数为NULL

            g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);

    //设置窗口的边框宽度

            gtk_container_set_border_width (GTK_CONTAINER (window), 10);

    //创建一个新的标签 

         button = gtk_button_new_with_label ("Hello World");

     //处理按钮的clicked信号

    g_signal_connect (button, "clicked", G_CALLBACK (print_hello), NULL);

            //g_signal_connect_swapped将clicked信号连接到window窗口的gtk_widget_destroy事件中。

            g_signal_connect_swapped (button, "clicked", G_CALLBACK (gtk_widget_destroy), window);

            //将按钮加入到容器中

            gtk_container_add (GTK_CONTAINER (window), button);

    //显示这个按钮

            gtk_widget_show (button);

           //显示窗口

    gtk_widget_show (window);

    //开始GTK的主循环

            gtk_main ();

            return 0;



}


本博客所有内容是原创,如果转载请注明来源


http://blog.csdn.net/myhaspl/

在XMANGER下用VIM编写好后,编译运行

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: