分享
 
 
 

利用 EasyGTK 进行轻松 GUI 编程

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

具有完整 GUI 工具箱可扩展功能的快捷方式的好处

Patrick Lambert

IT 顾问和自由专栏作家

内容:

更简单 GUI 的轻松开始

开始使用 EasyGTK

分析样本代码

扩展成果

参考资料

关于作者

Gimp Toolkit (GTK+) 是一个免费工具箱,可以用于创建完美的用户界面。EasyGTK 是一个将调用转换成 GTK+ 的封装库,从而大大节省了掌握 GTK+ 需要付出的精力和时间。本文仔细分析了一小段 EasyGTK 代码,用以说明如何创建简单的应用程序,并提供了对使用此工具箱的一些建议。

“图形用户界面 (GUI)”工具箱在 Linux 中已经存在了许多年。从 Xlib、XT 和 Motif 开始,它们就提供了一个 API,这个 API 可以使在 Linux 上创建漂亮的图形程序变得更容易。它们都附带了一个说明如何使用这些库来创建程序的文档。最近,在 Linux GUI 世界中,一个新的库成为了主流:GTK+。Gimp Toolkit (GTK+) 可以创建非常精致的程序,而且它是免费的,这就使它在 Linux 开发人员之中非常流行。然而,它有一个常见问题,就是学习如何使用该库来创建程序需要花费很长时间。让我们进入 EasyGTK。

更简单 GUI 的轻松开始

从技术角度来看,这个库是一个封装库。这意味着开发人员使用 EasyGTK C API 来创建软件,而它将调用转换成 GTK+ 库。一个普通的 EasyGTK 命令可以实现 5 到 10 个 GTK+ 函数所实现的功能。这就意味着使用 EasyGTK 调用创建程序不仅更容易,而且更快。

开始使用 EasyGTK

让我们看一下基本命令,做好开始使用这个库的准备。如同其它 Linux 程序一样,EasyGTK 也需要经过编译和安装。它应该在标准 Linux 发行版上运行。安装之后,就可以使用静态库来编译您自己的程序,如同其它库一样。附带的文档中有如何使用 EasyGTK 编译程序的完整描述,以及一个命令列表。为了继续讨论这个库,让我们看一下简单程序源代码:

基本代码样本 #include "easygtk.h"

GtkWidget *win, *box, *text, *button;

void main(int argc, char *argv[])

{

gtk_init(&argc, &argv);

win e_window_create("Hello World", 400, 200, 100, 100, exit);

box e_box_create(win, E_VERTICAL, 2);

text e_text_create(box, FALSE, "Hello World!", E_NO_FUNC);

button e_button_create(box, "Close", exit);

gtk_main();

}

分析样本代码

这个 EasyGTK 小程序如果用 GTK+ 进行编码,可能会有大约 30 行。现在,让我们逐行研究这个代码的功能。第一行告诉编译器要包括这个库附带的文件 easygtk.h,该文件包括了所有 EasyGTK 命令的定义。

下一行是程序中使用的窗口小部件的声明。窗口小部件是表示诸如窗口、按钮、文本标签或布局框之类的图形组件的变量。在 main 函数中,我们必须先启动 GTK+ 引擎,然后只要创建窗口小部件。所有 EasyGTK 命令都以 "e" 开头。第一个 EasyGTK 命令创建了一个窗口。关于所有 EasyGTK 函数都使用什么参数,请参考库文档。例如,e_window_create() 函数将在位置 100x100 处创建一个 400 像素乘以 200 像素的窗口,其标题是 "Hello World",如果用户关闭此窗口,则会调用函数 exit()。

使用这个库时应该要知道如何在窗口中放置窗口小部件或组件。一旦创建了窗口,就必须在其中放置框。有 2 种框:垂直框和水平框。如果想要将文本标签和按钮上下放置,那么可以使用垂直框,将标签和按钮添加到该框,它们将按您期望的方式显示。假设您希望标签位于窗口顶部,2 个按钮并排放置在窗口底部。那么可以先使用垂直框,然后使用水平框。添加了所需的框之后,就可以向它添加任何窗口小部件,甚至添加其它框。

接着的两个命令创建了一个文本区和用于关闭此窗口的按钮。经过编译之后,这个应用程序并没有太多功能,它仅是一个示例。在这个 main C 函数的结尾是启动 main GTK+ 循环的命令。这将把我带入事件和循环。在 GTK+ 或 EasyGTK 应用程序中,只能在 gtk_main() 启动的 main 循环中检测到用户操作。添加了组成应用程序的所有窗口小部件后,就需要使用该函数来启动循环。然后程序进行循环并等待用户操作。如果用户执行了某些操作(例如,单击按钮),那么循环将停止,控制将交给指定的函数,在本例中是用于退出程序的 exit()。

扩展成果

这个示例演示了如何创建非常简单的应用程序,但您可以添加更复杂的组件。EasyGTK 有超过 50 个函数可供使用。我建议您尝试一下库附带的示例源文件。还可以在同一个应用程序中混合 EasyGTK 和纯 GTK+ 命令。

目前,EasyGTK 支持 GTK+ 版本 1.2,这是大多数 Linux 发行版附带的版本。它还包含了需要使用 Imlib、ImageMagick 和 GNOME 的函数。然而,您可以在不支持这些库的情况下编译此库,而且不需要安装它们以便使用 EasyGTK。据我所知,这个库还可以在其它 UNIX 系统(如 Sun Solaris)上工作。

有关 EasyGTK,最后需要注意的是其源代码在 GPL 许可证的规定下公开,也就是说可以定制函数以使它符合您的需要。例如,如果使用这个库来创建许多窗口,但又希望窗口不显示关闭按钮,那么可以修改此库的源代码本身来实现这个目的。这个库就是轻松编码和使应用程序创建更快速的一种方式。

参考资料

下载 EasyGTK 库。

下载 GTK+ 库。

请阅读 GNOME 成员 George Lebl 在 developerWorks 上发表的介绍使用 GNOME 库编程的系列文章:入门、构建样本程序和使用 libxml。George 的网站上有关于 Linux 和 GNOME 的详细信息。

请访问专用于 GNOME 应用程序开发者的站点。它包含了 API 参考大全、教程、白皮书和其它有帮助的信息。

可用的 GNOME 应用编程教程。

请尝试 gtk.org 的 GTK+ 教程。

访问 RedHat 的 RHAD 实验室,那里有许多正在进行的 GNOME/GTK+ 开发

查看 GIMP,它是 GTK+ 的发源地

关于作者

Patrick Lambert 是一位 IT 顾问和自由专栏作家。他撰写了关于计算问题和因特网的文章。他是微软认证专家 (MCP) 和认证 A+ 技术专家。可通过 drow@post.com 与他联系。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有