26.2.2 添加容器
Glade提供了19种容器构件供用户选择,这些都是在GTK+中所预定义的。开发者可在Glade主界面左侧“容器”选项卡中选择所需要添加的容器构件,如图26.18所示。
图26.18 容器选项卡
选项卡中每一个按钮对应着一种容器构件。根据使用方法和作用的不同,可将这些容器依次分为下列类别。
1.横向组装盒与纵向组装盒
单击横向组装盒与纵向组装盒按钮时,Glade会提示输入条目数,该数值是容器中单元格的个数。在使用gtk_hbox_new()和gtk_vbox_new()时并不需要提供这些参数,设置单元格的个数是为了便于可视化编辑。设置后可在“常规”选项卡中修改单元格的个数,如图26.19所示。
在容器中可继续装入其他的容器,容器的层次并没有限制。Glade对容器的管理非常灵活,其主界面右上方的“容器”列表内将根据容器名称显示出容器的层次,如图26.20所示。
图26.19 修改单元格的个数
如果需要在容器的上一级增加一个容器,可右击编辑区内的容器,或者右击“容器”列表中的容器名。在弹出菜单“添加上一级”子菜单中,选择要添加的容器,如图26.21所示。
图26.20 容器的层次 图26.21 添加上一级容器
删除容器则有两种方式。第一种是右击编辑区中的容器或“容器”列表中的容器名,在弹出菜单中选择“删除”命令。这将删除容器本身,以及容器内的所有界面构件。另一种方法是在弹出菜单中选择“清除上一级”命令,只有容器的上一级容器被删除,容器本身的层次向前移了一位。
复制、剪切和粘贴也可用于容器,影响的将是容器内的所有界面构件。Glade会为这些构件的副本重新命名。
2.表格
表格按钮对应gtk_table_new()函数的功能,按下时将提示输入表格的行数和列数。或者在创建表格后,通过“常规”选项卡中的“行数”和“列数”输入框修改,如图26.22所示。
图26.22 创建表格
3.笔记本
笔记本按钮对应gtk_notebook_new()函数,按下时将提示输入笔记本的页数。该页数可在创建笔记本后通过“常规”选项卡中“页”微调框中修改。笔记本构件中选项卡的名称作为文本标签构件列在“容器”列表内,可单击该名称,在“常规”选项卡的“标签”文本框中修改,如图26.23所示。
图26.23 修改选项卡名称
4.框架和外观框架
创建框架构件所对应的是gtk_frame_new()函数,使用Glade创建框架构件时会自动添加一个对齐构件和一个标签构件。对齐构件是框架内的下一层容器,标签构件显示在框架的右上方,如图26.24所示。
框架的边框风格可在“常规”选项卡内的“框架阴影”下拉列表框中设置,选项依次为“无”、“里面”、“突出”、“向内蚀刻”和“向外蚀刻”。
外观框架又称比例框架构件,所对应的是gtk_aspect_frame_new()函数。外观框架的比例属性可在“常规”选项卡内的“比率”微调框内设置,如图26.25所示。
图26.24 框架 图26.25 外观框架
5.菜单条
Glade添加菜单条的功能远比gtk_menu_bar_new()函数所实现的功能要丰富,它能同时添加菜单容器和菜单项。Glade没有将菜单容器和菜单项作为独立的界面构件,而是提供了菜单编辑器专门用于设计菜单。右击编辑区中的菜单,在弹出菜单中选择“编辑”命令,将打开菜单编辑器,如图26.26所示。
图26.26 菜单编辑器
在菜单编辑器左侧的标签列表中选择菜单项名称后,可编辑该菜单项。菜单编辑器右侧有4个属性可以设置,依次如下。
q 名称:在代码中访问该菜单项的名称。
q 类型:根据GTK+对菜单项的定义,可选取的值有“普通的”、“图像”、“复选”、“单选”和“分割条”。
q 标签:显示在菜单中的字符串。
q 工具提示:鼠标悬停时显示的文本,菜单编辑器会为菜单项自动添加工具提示 对象。
q 库存条目:该选项在菜单项“类型”设置为“图像”时显示,可从图像库中选择菜单项的图形。
如果要添加一个菜单项,可单击“添加”按钮,新菜单项将在菜单项列表中所选菜单项后一位,且处于同一层。或者右击列表中的菜单项,选择“添加子项目”命令,创建所选菜单项的下一级菜单。
菜单编辑器的下方是信号与事件的列表,可直接在此为菜单项连接事件与回调函数。如果要为菜单项添加快捷方式,操作步骤为:
(1)在“容器”列表内选择菜单项。
(2)选择“容器”列表下的公共选项卡,单击“加速键”后的编辑按钮,如图26.27所示。
(3)在“选择加速键”对话框中,选择对应的信号、按键和控制键,如图26.28所示。
图26.27 加速键 图26.28 选择加速键
6.工具条
工具条对应gtk_toolbar_new()函数的功能,创建后在编辑区右击工具条,在弹出的快捷菜单中选择“编辑”命令,可打开“工具条编辑器”对话框,如图26.29所示。
在“工具条编辑器”中,可单击“添加”按钮添加一个工具构件。“类型”下拉列表框用于定义工具构件的类型,默认为“按钮”。工具构件的信号与事件可在对话框下侧的信号列表中设置。
图26.29 工具条编辑器
7.水平窗格和垂直窗格
水平窗格和垂直窗格对应gtk_hpaned_new()和gtk_vpaned_new()函数的功能,初始位置可在“常规”选项卡内的“位置”微调框中设置,并且要将“位置设置”的值设为“是”才能在程序中生效,如图26.30所示。
8.横向按钮盒与纵向按钮盒
横向按钮盒与纵向按钮盒对应gtk_hbutton_box_new()和gtk_vbutton_box_new()函数的功能。为了方便编辑,需要在“常规”选项卡内的“条目数”微调框中指定按钮盒内单元格的个数,默认值为3,如图26.31所示。
图26.30 水平窗格和垂直窗格 图26.31 按钮盒
9.陈列
陈列即是指布局容器,对应gtk_layout_new()函数的功能。布局容器最大尺寸可在“常规”选项卡内的“宽度”和“高度”微调框中设置。
10.固定
固定容器对应gtk_fixed_new()函数的功能。
11.事件框
事件框对应gtk_event_box_new()函数的功能。
12.展开器
展开器对应gtk_expander_new()函数的功能,它由一个箭头构件、一个标签和一个容器所组成。单击箭头可改变箭头的方向。当箭头构件指向下时,展开器内的容器构件将显示。而在箭头指向右方时,展开器内的容器将被隐藏,如图26.32所示。
图26.32 展开器的展开与收缩状态
13.视口
视口即视见区,对应gtk_viewport_new()函数的功能。“常规”选项卡内的“阴影类型”下拉列表框可设置其边框的类型,选项依次为“无”、“里面”、“突出”、“向内蚀刻”和“向外蚀刻”。
14.可滚动的窗口
可滚动的窗口即滚动条窗体构件,对应gtk_scrolled_window_new()函数的功能。它包括一组滚动条构件和一个视见区,但在Glade中不可直接访问其子构件的属性。如果要设置滚动条构件的显示状态,可通过“常规”选项卡内的“水平滚动条策略”和“垂直滚动条策略”下拉列表框设置,如图26.33所示。
图26.33可滚动的窗口
15.对齐
对齐容器对应gtk_alignment_new()函数。在“常规”选项卡中可设置其属性,这些属性依次为:q 水平排列:取值范围为0.0至1.0,即最左到最右。
q 垂直排列:取值范围为0.0至1.0,即最上到最下。
q 水平缩放比率:如果水平方向可用的空间比子构件所需要的多,设置子部件将使用多少。0.0表示不用,1.0表示全部。
q 垂直缩放比率:如果垂直方向可用的空间比子构件所需要的多,设置子部件将使用多少。0.0表示不用,1.0表示全部。
q 顶部留空:上方的边界值。
q 底部留空:下方的边界值。
q 左部留空:左面的边界值。
q 右部留空:右面的边界值。