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`
 posted on 2009-06-04 13:01  清水湾  阅读(860)  评论(0)    收藏  举报