分类: 嵌入式
2009-11-26 13:15:11
第一个GTK程序简单,简单到只能使用Ctrl+C来结束运行。代码如下:
/*
* base.c
*/
/* 既然是使用GTK函数库编程,自然是一定要包含GTK的头文件gtk.h */
#include
int main( int argc,
char *argv[] )
{
/* Widget这个单词的意思是“[计]窗口小部件”,GtkWidget这个变量类型可以用来
* 定义各种GTK中的窗口组件。这里我定义了3个窗口。
*/
GtkWidget *window1;
GtkWidget *window2;
GtkWidget *window3;
/* 从函数的名字不难看出,gtk_init()的功能是做一些初始化工作。至于后面的参
* 数,也不难看出就是指向main()主函数的参数。既然是初始化,当然是应该最先
* 执行的。
* 原型:void gtk_init(int *argc,char ***argv)
*/
gtk_init (&argc, &argv);
/* gtk_window_new()是用来创建窗口的。
* 原型:GtkWidget *gtk_window_new(GtkWindowType windowtype)
* 参数windowtype的取值有3个
* GTK_WINDOW_TOPLEVEL
* GTK_WINDOW_DIALOG
* GTK_WINDOW_POPUP
* 前两个参数创建出来的窗口有点像,似乎没有什么区别。但是第三个参数就不同
* 了。由GTK_WINDOW_POPUP创建的窗口,没有标题栏,而且始终位于屏幕的最上方
* 即其它窗口不能遮挡住它。
*/
window1 = gtk_window_new (GTK_WINDOW_TOPLEVEL);
window2 = gtk_window_new (GTK_WINDOW_DIALOG);
window3 = gtk_window_new (GTK_WINDOW_POPUP);
/* 我们可以使用gtk_window_set_title()函数来设定或改变窗口的标题。
* 原型:void gtk_window_set_title(GtkWindow *window,const gchar *title)
* 第一个参数是GtkWindow *类型,因此我们需要强制转换一下。
* gchar在glib库中定义,它和char是一样的。
*/
gtk_window_set_title(GTK_WINDOW(window1),"TOPLEVEL");
gtk_window_set_title(GTK_WINDOW(window2),"DIALOG");
gtk_window_set_title(GTK_WINDOW(window3),"POPUP");
/*设置窗口的位置,可用参数值
* GTK_WIN_POS_NONE
* GTK_WIN_POS_CENTER
* GTK_WIN_POS_MOUSE
* GTK_WIN_POS_CENTER_ALWAYS
* void gtk_window_set_position(GtkWindow *window, GtkWindowPosition position)
*/
gtk_window_set_position(GTK_WINDOW(window1),GTK_WIN_POS_CENTER);
/* 设定window的尺寸。和gchar一样,gint是在glib库中定义的和int一样的类型。
* void gtk_window_set_default_size(GtkWindow *window, gint width, gint height)
*/
gtk_window_set_default_size(GTK_WINDOW(window1), 300, 300);
/* void gtk_widget_show(GtkWidget *widget) 函数用于显示窗口中的组件。在创
* 建了一个组件或改变了组件属性的情况下,则这个函数就必须要用到。
*/
gtk_widget_show (window1);
gtk_widget_show (window2);
gtk_widget_show (window3);
/* 当一切创建与设置工作都完成之后,我们就需要使用void gtk_main(void)函数将
* 窗口和所有的组件显示在屏幕上,这个函数必须在GTK程序的最后调用。
*/
gtk_main ();
return(0);
}
编译时使用如下方法:
[yaos@Arch gtk]$ gcc base.c `gtk-config --cflags --libs`
没有出错提示就可以运行a.out了。