在任何平台上创建图形用户界面(GUI)都是一件烦锁的事。事件和布局的管理都很复杂,也容易出错。在本文里,我会探讨一下Glade,它是GNOME上以及其他基于GTK桌面环境里主要的GUI创建器。Glade的使用同VB或者Delphi的使用类似,但是其中一些差别会让人不知所措,但是一旦你适应了这个环境,它就很有用了。
有一件事要提一下,Glade只是一个前端。Glade应用程序会生成一个XML文件,用来描述项目中所创建的界面。然后后端就使用Glade文件所生成的用目标语言写成的源代码。这样做的好处是,你可以选择很多不同的目标语言。缺省的输出语言是C,但是还有一些用于C++、Ada、Perl,以及其他更多语言的后端。
进入正题
Glade这个应用程序由三个窗口组成:
你在其中选择各种控件,然后将它们放到目标窗口里。这里的很多不同之处会让人难以捉摸。在Delphi和VB里,控件在缺省的状态下会待在你放置它们的地方,其大小会保持不变,即使窗体的大小发生了变化。这种行为对于不会改变大小的对话框和窗口来说是非常好的,但是如果你要创建一个大小可改变的窗口,你就要经历一些磨合才能够让窗口按要求显示。在Glade里,当你把控件放到窗口里的时候,控件会主动填满整个空间。所以当你更改窗体大小的时候,控件的大小也发生了改变。
按部就班
第一步是创建一个项目。在空白的项目里,放置一个窗口或者GNOME窗口。当你进行这一步的时候,一个空白的窗口会显示出来。你放在这个窗口内的任何控件都会扩展开,并填满窗口里的整个客户端区域。由于有这个行为,Glade会有一些特殊的控件用于将控件放在相对位置或者精确位置。
切换到工具窗口里的GTK+Basic选项卡,然后选择表格控件,再将它放在窗体里。然后就会看到一个询问你需要多少行和多少列的对话框。就使用缺省的值。现在在窗口里会有9个单元格。任何被你放到单元格里的控件都会填满该单元格。现在将一个固定位置控件放到正中间的单元格里。你放到这个固定位置控件之上的任何控件都会保持在它们被放置的位置,即使你重新调整了窗口的大小。
还有两个类似的控件:水平框和垂直框。这两个和表格控件一样都是相对位置控件。为了使用这些控件,必要的时候可以将它们相互嵌入使用,你可以为自己的应用程序获得理想的布局,并得到控件放置的相对位置,而不要编写任何代码。这个行为是你在学习使用Glade的时候需要习惯的最重要的东西。
一旦你有了理想的布局,就到了给控件指定事件行为的时候了。要指定事件,就要选择控件,然后再在属性(Properties)窗口里选择信号(Signals)选项卡。在窗口的下半部,有一个编辑(Edit)框,它旁边有一个带省略号的按钮。点击这个带省略号的按钮,你就会看到一个可用于这个控件的可用事件列表。选中其中一个,使其高亮显示,然后点击OK按钮。信号的名称就会出现在编辑框里。现在选择添加(Add)。为你想要使用的每个控件和事件重复上面的步骤。
到了这个时候,还没有代码生成。现在,保存你的项目,然后在项目窗口工具条里选择选项(Options)按钮。在刚才出现的对话框的底部,有一个标题为语言(Language)的区域。你可以(在这里)选择很多语言,包括C、C++、Perl,以及其他等等。选择完语言之后,点击OK按钮,然后选择工具条上的创建(Build)按钮。带有源代码和完成文件的完整项目就被生成了。从这个时候起,你就可以加入自己的代码并完成你的应用程序了。
作者 Scott Withrow具有超过18年以上的IT工作经验,包括IT管理、Web开发管理,以及内部咨询应用程序分析。