GTK+学习之 helloworld

 pkg-config --libs --cflags gtk+-2.0

 pkg-config --version  //查看pkg-config的版本号

 pkg-config --modversion gtk+//查看gtk1.0的版本号

 pkg-config --modversion gtk+-2.0//查看gtk2.0的版本号

#include <gtk/gtk.h> 包含了Gtk+编程中所有需要的头文件,也包含gdk.h和glib.h等如果要用到Gnome的构件和库函数,包含gnome.h就可以了



gtk_init(&argc,&argv)
调用gtk_init(gint *argc,gchar ***argv)
为我们设置一些缺省值,例如视觉和颜色映射,然后调用gdk_init(gint *argc,gchar ***argv),这个函数将函数库初始化,设置缺省的信号处理函数,并检查通过命令行传递给应用程序的参数。
主要就爱你查下面所列的一些值
--gtk-module
--g-fata1-warnings
--gtk-debug
--gtk-no-debug
--gdk-debug
--gdk-no-debug
--display
--sync
--no-xshm
--name
--class
它从变量表中删除以上参数,并分离出所有不识别的值,应用程序可以分析或忽略这些值,由此声称一些Gtk应用程序可以接受的标准参数。
下面两行将创建和显示一个窗口:
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_show(window);
GTK_WINDOW_TOPLEVEL参数指明让窗口使用“窗口管理程序”指定的状态设置和位置布置

gtk_main();
是每个Gtk应用程序都要调用的函数,当程序运行到这里时,Gtk将进入等待状态,等候X事件、timeout或文件输入\输出发生

#include  < gtk / gtk.h >  包含了Gtk+编程中所有需要的头文件,也包含gdk.h和glib.h等
如果要用到Gnome的构件和库函数,包含gnome.h就可以了

gtk_init(
& argc, & argv)
调用gtk_init(gint 
* argc,gchar  *** argv)
为我们设置一些缺省值,例如视觉和颜色映射,然后调用gdk_init(gint 
* argc,gchar  *** argv),这个函数将函数库初始化,设置缺省的信号处理函数,并检查通过命令行传递给应用程序的参数。
主要就爱你查下面所列的一些值
-- gtk - module
-- g - fata1 - warnings
-- gtk - debug
-- gtk - no - debug
-- gdk - debug
-- gdk - no - debug
-- display
-- sync
-- no - xshm
-- name
-- class
它从变量表中删除以上参数,并分离出所有不识别的值,应用程序可以分析或忽略这些值,由此声称一些Gtk应用程序可以接受的标准参数。
下面两行将创建和显示一个窗口:
window
= gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_show(window);
GTK_WINDOW_TOPLEVEL参数指明让窗口使用“窗口管理程序”指定的状态设置和位置布置

gtk_main();
是每个Gtk应用程序都要调用的函数,当程序运行到这里时,Gtk将进入等待状态,等候X事件、timeout或文件输入\输出发生

/* helloword.c */

#include 
< gtk / gtk.h >
void  hello(GtkWidget  * widget,gpointer data)
{
 g_print(
" Hello World!\n " );
}

gint delete_event(GtkWidget 
* widget,GdkEvent  * event ,gpointer data)
{
 g_print(
" delete event occurrend\n " );
 
return  (TRUE);
}

void  destroy(GtkWidget  * widget,gpointer data)
{
 gtk_main_quit();
}

int  main( int  argc, char   * argv[])
{
 GtkWidget 
* window;
 GtkWidget 
* button;
 gtk_init(
& argc, & argv);
 window
= gtk_window_new(GTK_WINDOW_TOPLEVEL);
 g_signal_connect(G_OBJECT(window),
" delete_event " ,G_CALLBACK(delete_event),NULL);

 g_signal_connect(G_OBJECT(window),
" destory " ,G_CALLBACK(destroy),NULL);
 gtk_container_set_border_width(GTK_CONTAINER(window),
10 );
 button
= gtk_button_new_with_label( " Hello world " );g_signal_connect_swapped(G_OBJECT(button), " clicked " ,G_CALLBACK(hello),NULL);
 g_signal_connect(G_OBJECT(button),
" clicked " ,G_CALLBACK(hello),NULL);
 g_signal_connect_swapped(GTK_OBJECT(button),
" clicked " ,G_CALLBACK(gtk_widget_destroy),window);
 
 gtk_container_add(GTK_CONTAINER(window),button);
 gtk_widget_show(button);
 gtk_widget_show(window);
 gtk_main();
 
return ( 0 );
}
 

gcc 
- o helloword helloword.c `pkg - config  -- cflags  -- libs gtk +- 2.0 `


gcc -o helloword helloword.c `pkg-config --cflags --libs gtk+-2.0`

你可能感兴趣的:(helloworld)