1.1GTK+ 的简单程序HelloWorld

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

(完)