1.1GTK+ 的简单程序HelloWorld
#include /* 回调函数忽略了传递给程序的所有参数 */
void hello(GtkWidget *widget, gpointer data)
{
g_print("Hello World\n");
}
gint delete_event(GtkWidget *widget, GdkEvent *event, gpointer data)
{
/*
* 如果在该处理程序中返回FALSE,将关闭,引发"destroy"信号
* 返回TRUE则不关闭
*/
g_print("delete event occurred\n");
return(FALSE);
}
/* 另一个回调函数 */
void destroy(GtkWidget *widget, gpointer data)
{
gtk_main_quit();
}
int main(int argc, char *argv[])
{
//GtkWidget是构件的储存类型
GtkWidget *window;
GtkWidget *button;
gtk_init(&argc, &argv);
//创建一个主窗口
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
//当给窗口一个“delete——event”信号时,要求调用delete_event函数返回数据
gtk_signal_connect(GTK_OBJECT (window), "delete_event", GTK_SIGNAL_FUNC(delete_event), NULL);
//给destroy事件连接一个信号处理函数
gtk_signal_connect(GTK_OBJECT (window), "destroy", GTK_SIGNAL_FUNC(destroy), NULL);
//设置窗口的边框宽度
gtk_container_set_border_width (GTK_CONTAINER(window), 10);
//创建“hello world”按钮
button = gtk_button_new_with_label("helloworld");
//当点击时会触发hello方法
gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(hello), NULL);
//点击按钮时,调用gtk_widget_destroy销毁窗口
gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC (gtk_widget_destroy), GTK_OBJECT (window));
//将按钮组装到窗口中
gtk_container_add(GTK_CONTAINER (window), button);
//显示新创建的构件
gtk_widget_show(button);
//显示窗口
gtk_widget_show(window);
gtk_main(); return(0);
}
编译运行如图所示:
文章来源: blog.csdn.net,作者:冰水比水冰,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/luoyhang003/article/details/40165961