Chinaunix首页 | 论坛 | 博客
  • 博客访问: 65953
  • 博文数量: 22
  • 博客积分: 67
  • 博客等级: 民兵
  • 技术积分: 135
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-11 11:03
文章分类

全部博文(22)

文章存档

2014年(1)

2012年(21)

分类: LINUX

2012-11-29 11:28:24

                                                Glade 的使用


画好界面

生成源代码

  在Glade下,选择“文件”菜单下的BuildSourceCode菜单项,或者点击主窗口工具条上的“Build”按钮,可以生成C语言的源代码。这 些将是我们应用程序的基础,以后的工作就是通过编码实现程序的各项功能。Glade生成的源代码完全符合Gnome应用程序的编码规范。
   一般Glade会创建一个Macros目录(其中包含了编译需要的宏)、一个po目录(用于容纳国际化文件)、一个src目录(源代码)、一个 autogen.sh脚本文件,以及其他设置编译选项时要用到的文件。此外还有ChangeLog、Readme、News、Authors等文件(空文 件)。应用程序的源代码都放在src目录里。其中包含main.c、interface.c、interface.h、callbacks.c、 callbacks.h、support.c、support.h几个主要文件。

  Main.c是程序的主文 件,它包含了main函数,在它的头部包含了gnome.h文件(包含了gnome.h之后不再需要包含gtk.h、gdk.h、glib.h以及所有用 到的构件的头文件)。创建应用程序用户界面的函数都放在interface.c中,interface.h中包含了interface.c中的所有函数声 明。
  所有的回调函数都放在callbacks.c中,callbacks.h文件中包含了callbacks.c中所有函数的声明;support.c文件中包含Glade提供的几个实用函数;support.h包含support.c中的所有函数的声明。

   有了上面这些文件之后,下一步就是在这个基础上增加代码以实现应用程序的功能。如果要直接在代码修改界面,可以修改interface.c文件;如果要 添加新的回调函数,可以在callbacks.c和interface.c中添加代码。要注意的是,如果增加了新函数,不要忘了在相应的头文件 (interface.h、support.h、callbacks.c)里添加函数声明。
  另外,support.c中包含了几个由Glade提供的实用函数,它们是:
  GtkWidget*lookup_widget(GtkWidget*widget,
  constgchar*widget_name);
  GtkWidget*create_pixmap(GtkWidget*widget,
  constgchar*filename,
  gbooleangnome_pixmap);
  lookup_widget根据提供的构件的名称返回一个构件指针。在代码中调用这个行数来传递指针是非常方便的。create_pixmap用于在interface.c中由文件名创建pixmap图片。
  7.编译用Glade生成的代码
   对较大型的程序设置编译选项,以及创建Makefile是很复杂的。一般要联合使用各种GNU工具,如automake、autoconf等,创建一个 configure脚本和Makefile.am文件。然后运行configure脚本设置编译选项生成Makefile文件。Glade所生成的C源代 码中包含一个名为autogen.sh的脚本。使用它可以轻松完成这一复杂任务。假设用Glade创建了一个应用程序myapp的界面,并已经通过编程实 现了所需要的各种功能。源代码存放在/root/myapp下。在shell提示符下执行下面的代码:
  cd/root/myapp
  ./autogen.sh
  autogen.sh脚本会搜索源代码的路径、头文件路径、所需库文件的安装路径,然后生成一个Makefile文件。现在,就可以开始编译了。在shell提示符下输入:
  make

  如果源代码没有错误,就会生成所需要的可执行文件了。编译结果一般放在src子目录下。可以尝试运行如下程序:
  cdsrc
  ./myapp

   如果需要,可以用gdb或者xxgdb调试这个程序。除了某些功能还没有实现以外,当前Glade版本中还有一些bug。最好不要使用构件箱中 Gnome页上的GnomeMessageBox(Gnome消息框),因为它所生成的关于GnomeMessageBox代码不能正常编译。实际上,创 建GnomeMessageBox以及调用它的方法非常简单。

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