Chinaunix首页 | 论坛 | 博客
  • 博客访问: 638095
  • 博文数量: 237
  • 博客积分: 4285
  • 博客等级: 上校
  • 技术积分: 2701
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-15 14:05
文章分类

全部博文(237)

文章存档

2014年(2)

2013年(3)

2012年(47)

2011年(15)

2010年(68)

2009年(102)

我的朋友

分类: 嵌入式

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了。

阅读(510) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~