26.2.1 添加窗体
Glade提供了10种窗体构件供用户选择,这些都是在GTK+中所预定义的。开发者可在Glade主界面左侧“顶层”选项卡中选择所需要添加的窗体构件,如图26.2所示。
图26.2 顶层选项卡 |
1.通用窗体构件
通用窗体构件即gtk_window_new()函数所创建的窗体,单击该构件可在Glade主界面的编辑区域创建一个新窗体,如图26.3所示。
Glade中所显示的为窗体的主体部分,窗体的标题栏和边框不会显示。其蓝色边框所界定的范围为实际窗体的尺寸,可用鼠标拖动蓝色边框改变窗体的尺寸。窗体主体中间的网格区域表示是未添加界面构件的容器区域,该部分可放置界面构件。
一个Glade项目中可以建立多个窗体构件,每个窗体构件都作为一个顶层容器被显示在Glade主界面右上方的“容器”列表中,如图26.4所示。
图26.3 通用窗体构件 图26.4 “容器”列表
可在“容器”列表中双击窗体构件的名称打开窗体进行编辑。或者右击窗体名称,在弹出菜单中选择“删除”命令,从项目中删除一个窗体构件。Glade支持窗体的复制、剪切和粘贴操作,用于在同一个项目内创建窗体的副本,或者将窗体复制到不同项目中
2.通用对话框构件
通用对话框构件对应gtk_dialog_new_with_button()函数所创建的窗体,它的内部由一个纵向组装盒容器和一个按钮盒容器组成。通用对话框在程序运行时不显示最小化和最大化按钮,用户也不能通过拖拉操作改变其尺寸,如图26.5所示。
图26.5 通用对话框构件 |
3.关于对话框
关于对话框是通过gtk_about_dialog_new()函数建立的,用于显示当前应用程序的信息。关于对话框继承了通用对话框的特性,只是预先定义了一些界面构件在其内,如图26.7 所示。
图26.6 通用对话框构件 图26.7 关于对话框构件
关于对话框中显示的内容可直接在“常规”选项卡中设置。这些内容对应所有应用程序的特性,并遵循通用版式,如下所示:
(1)名称。对话框构件在程序中的名称,对应gtk_about_dialog_set_name()函数的功能。该函数的一般形式为:
void gtk_about_dialog_set_name(GtkAboutDialog *about,
const gchar *name);
(2)程序名称。当前项目所建立应用程序的名称,程序名称用大字号显示在关于对话框中心区域。对应gtk_about_dialog_set_program_name()函数的功能,该函数的一般形式为:
void gtk_about_dialog_set_program_name(GtkAboutDialog *about,
const gchar *name);
(3)程序版本。当前项目的版本号,显示在程序名称之后,使用与程序名称相同的字号。对应gtk_about_dialog_set_version()函数的功能,它的一般形式为:
void gtk_about_dialog_set_version(GtkAboutDialog *about,
const gchar *version);
(4)版权字符串。当前项目的版权信息,显示在程序名称下方,使用较小的字号。对应gtk_about_dialog_set_copyright()函数的功能,它的一般形式为:
void gtk_about_dialog_set_copyright(GtkAboutDialog *about,
const gchar *copyright);
(5)评论字符串。评论字符串是当前应用程序主要功能的表述,显示在程序名称和版权字符串之间。对应gtk_about_dialog_set_comments()函数的功能,它的一般形式为:
void gtk_about_dialog_set_comments(GtkAboutDialog *about,
const gchar *comments);
(6)网站URL。当前项目发行者的网站地址,显示在版权信息下方,字符串有下划线。单击该地址将在浏览器中打开所指向的网页。对应gtk_about_dialog_set_website()函数,它的一般形式为:
void gtk_about_dialog_set_website(GtkAboutDialog *about,
const gchar *website);
(7)网站标签。如果设置了网站标签,那么网站地址不会直接显示在关于对话框上,而是用网站标签内的字符串代替。对应gtk_about_dialog_set_website_label()函数,它的一般形式为:
void gtk_about_dialog_set_website_label(GtkAboutDialog *about,
const gchar *website_label);
(8)许可。设置许可信息后,关于对话框的左下角将出现一个许可按钮,按下该按钮会在一个新对话框中列出许可信息的内容。许可信息的内容通常为GPL协议相关信息,如图26.8所示。
许可信息可通过gtk_about_dialog_set_license()函数设置,它的一般形式为:
void gtk_about_dialog_set_license(GtkAboutDialog *about,
const gchar *license);
(9)作者。当前项目的程序开发者名称,可输入多个作者的信息。设置作者信息后,界面左下角将增加一个致谢按钮。按下该按钮会弹出“致谢”对话框,并在“作者”选项卡中列出作者信息,如图26.9所示。
图26.8 显示许可信息 图26.9 显示许可信息
如果要在作者名称后插入电子邮件地址或网络地址,并且使它们成为超级连接,可通过尖括号“< >”包围地址信息实现。作者信息可通过gtk_about_dialog_set_authors()函数设置,它的一般形式为:
void gtk_about_dialog_set_authors(GtkAboutDialog *about,
const gchar **authors);
(10)文档撰写者。当前项目的说明书等文档撰写者的名称,该信息显示在“致谢”对话框中。对应gtk_about_dialog_set_documenters()函数的功能,它的一般形式为:
void gtk_about_dialog_set_documenters(GtkAboutDialog *about,
const gchar **documenters);
(11)翻译者。当前项目的翻译工作者名称,该信息显示在“致谢”对话框中。对应gtk_about_dialog_set_translator_credits()函数的功能,它的一般形式为:
void gtk_about_dialog_set_translator_credits(GtkAboutDialog *about,
const gchar *translator_credits);
(12)美工。当前项目的美工名称,该信息显示在“致谢”对话框中。对应gtk_about_ dialog_set_artists()函数的功能,它的一般形式为:
void gtk_about_dialog_set_artists(GtkAboutDialog *about,
const gchar **artists);
(13)标志。用于设置当前项目的标志,可以是GTK+支持的任何图形格式文件,显示在标题栏下方,如图26.10所示。设置标志文件可通过gtk_about_dialog_set_logo()函数实现,它的一般形式为:
void gtk_about_dialog_set_logo(GtkAboutDialog *about,
GdkPixbuf *logo);
4.颜色选择对话框
颜色选择对话框对应GTK+库中的gtk_color_selection_dialog_new()函数所建立的对话框,用于选择颜色。窗体中的大部分内容是固定的,不可被用户修改,用户只能在其中的纵向组装盒容器中添加界面构件,如图26.11所示。
图26.10 项目标志 图26.11 颜色选择对话框
5.文件选择对话框
文件选择对话框可通过gtk_file_chooser_dialog_new()函数创建,它有一个纵向组装盒可用于放置界面构件,另外还提供了一个按钮盒放置按钮。如果没有指定按钮,那么Glade3会为其自动从按钮库添加GTK_STOCK_CANCEL和GTK_STOCK_OPEN。
文件选择对话框有一个重要属性,即“动作”属性。可在“常规”选项卡中设置,它有4个选项,默认为“打开”,其他选项依次为“保存”、“选择目录”和“创建目录”。这4个选项用于设置对话框的功能特性,与此同时对话框的标题和外观也会跟随设置改变,如图26.12所示。
6.字体选择对话框
字体选择对话框对应gtk_font_selection_dialog_new()函数的功能,它的大部分组件不能被修改,只提供了一个纵向组装盒用于添加界面构件,如图26.13所示。
图26.12 文件选择对话框(动作为打开) 图26.13 字体选择对话框
7.输入对话框
输入对话框对应gtk_input_dialog_new()函数的功能,它用于为鼠标、游戏操纵杆、画板等平面定位输入设备进行设置,在很多程序中是非常重要的。输入对话框的大部分功能都是GTK+内部实现的,所以并不需要对其进行额外的设置,如图26.14所示。
8.消息对话框
消息对话框对应gtk_message_dialog_new()函数的功能,所有内容均可在“常规”选项卡中设置。如下所示。
q 消息类型:用于定义消息对话框显示的风格,选项依次为“信息”、“警告”、“问题”、“错误”和“其他”。
q 消息按钮:用于定义消息对话框中所显示的按钮,选项依次为“无”、“确定”、“关闭”、“取消”、“是,否”和“确定,取消”。
q 文字:用大字体显示的消息文本。
q 次要文本:用小字体显示的消息文本,如图26.15所示。
图26.14 输入对话框 图26.15 消息对话框
9.最近选择对话框
最近选择对话框对应gtk_recent_chooser_dialog_new()函数的功能,用于显示最近用户编辑过的文件。“常规”选项卡的“限制”微调框可设置文件显示的最多个数。“排序类型”下拉列表框可设置文件列表的排序方法,依次为“无”、“最近使用最多的一个”、“最近使用最少的一个”和“定制”。对话框中有一个按钮盒构件,可装入要显示的按钮,如图26.16所示。
10.辅助
辅助是一种分为多页显示内容的向导窗体,在GTK+库中可使用gtk_assistant_new()函数创建。每一页中都默认放置着一个文本标签构件,用于显示文本信息。如果需要放置其他构件,可将文本标签删除。窗体的右下方有两个按钮,分别用于向前翻页和向后翻页,如图26.17所示。
图26.16 最近选择对话框 图26.17 辅助窗口
如果当前页面是第一面,“后退”按钮将被隐藏。如果是最后一页,“前进”按钮会被“应用”按钮替代。