碧波液压网 欢迎你,游客。 登录 注册

基于GTK+的组合构件设计

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  图形用户界面是用户与仪器的唯一交互方式,也是整个嵌入式系统一个尤为重要的方面。GTK+即是一个应用于嵌入式图形界面开发的良好图形库。在现行的仪器图形界面开发中不可避免地会涉及到自定义组合构件,它也是提高代码可移植性和茁壮性的一个重要方面。基于嵌入式仪器图形界面的需要,笔者在本文中着重介绍了自定义组合构件的设计方法。并通介绍任意波形发生器中波形显示组合构件来为读者提供一个可参考的实例。

  GTK+概述

  1 GTK+简介

  GTK+(GIMP ToolKit,GIMP工具包)最初用于开发GIMP,是一个用于创建图形用户接口的图形库。在功能上类似微软的MFC,即为应用程序提供一套与平台无关的图形用户界面接口。GTK+是基于LGPL授权的,因此GTK+在开发开源软件或商业的非自由软件领域中都得到越来越广泛的使用。特别在嵌入式应用中,由于GTK+库小,且程序员可以根据自己需要对其进行裁剪,因此其占用资源少并能快速装入,所以基于GTK+开发的图形用户界面适合在内存受限的嵌入式设备上运行。

  2 GTK+的库的调用关系

  GTK+建立在GDK (GIMP Drawing Kit)的上层,基本上是将Xlib功能包装起来。它被称为GIMP toolkit是因为原来是写来开发GIMP,但现在被许多免费软体计划所使用。GTK基本上是物件导向应用软体程式设计界面(API)。虽然完全用C所写成,他是用classes及callback函数的观念所做出来的。还有另一个被称为glib的函数库被用到,该函数库包涵了一些标准X函数的替代函数及一些额外的处理链结表的函数,等等。这些替代函数是用来增加GTK的可移植性的,因为有些函数需要用到非标准的功能,诸如g_strerror()。有些则包含一些libc版本的加强的功能,诸如g_malloc有加强的除错功能。

  GTK+是在Ddk的基础上创建的,其软件层次结构如图1所示。Glib是Linux系统下最常用的轻量级的C语言函数库,它提供了C常用的数据结构定义、处理函数、宏、可移植的封装和一些运行机能。Xlib是用来控制显示的底层图形函数库。Gdk则是对Xlib的封装。

  图1即为GTK+软件结构层次图。

  组合构件的定义及其设计难点分析

  1 组合构件的定义

  在GTK+图形库中,我们将窗口、按钮、框架、树等图形界面元素称为构件。构件具有面向对象的特征,其具体结构由GTK+库所定义,这对使用构件的程序员来说是透明的。GTK+库提供了一套完善的构件,供程序员创建出丰富的图形界面。同时,程序员也可方便的创建自定义构件。

  组合构件是构件的一种,它将多个构件组合起来成为一个新的构件,它不是单纯的将多个构件组合,也不是单纯的从某个控件继承下来的子控件,它有每个成员构件所没有的新功能。它是为了配合设计的需要,将每个成员构件组合起来形成一个具有新功能,新接口,实现新功能的构件。但是严格意义上讲它不能称之为全新的构件。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论