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;
}
在XMANGER下用VIM编写好后,编译运行
#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编写好后,编译运行相关文章推荐
- C指针原理(35)-gtk
- C指针原理(36)-gtk
- C指针原理(34)-gtk
- C指针原理(9)-C内嵌汇编
- C++基础7【难】 多态:实现原理 vptr指针 证明vptr存在 类的步长 纯虚函数:抽象类 案例 【面试题】
- 模板共享指针(shared_ptr)原理实现
- C++智能指针,指针容器原理及简单实现(auto_ptr,scoped_ptr,ptr_vector).
- Android系统的智能指针(轻量级指针、强指针和弱指针)的实现原理分析
- C指针原理(19)-C指针基础
- 智能指针(二):shared_ptr实现原理
- C指针原理(3)
- Android系统的智能指针(轻量级指针、强指针和弱指针)的实现原理分析(3)
- c++ 指针总结 函数参数指针调用和堆栈内存的分配原理
- C指针原理(48)-垃圾回收-内存泄露
- C指针原理(49)-垃圾回收-内存泄露
- 智能指针原理,并实现一个简单的智能指针
- C指针原理(65)-Ncurses-文本终端的图形
- C指针原理(40)-GLIB
- C指针原理(72)-GLIB
- C++智能指针auto_ptr的原理及使用