单片机信息网:深圳市今科电子有限公司
网站地图 RSS订阅
高级搜索 收藏本站
会员中心 欢迎投稿
首页 | 业界动态 | 解决方案 | 技术文献 | 下载中心 | 单片机学习 | 单片机原理 | 单片机编程 | 单片机设计 | 单片机开发 | 技术专题 | 单片机论坛 |单片机博客| 联系我们
单片机新闻 | 单片机学习 | 单片机编程 | 单片机设计 | 单片机开发 | 单片机原理 | 单片机解密 | 芯片解密 | IC解密 | 单片机方案 | 51单片机 | AVR单片机 | PIC单片机
单片机程序实例大全 | 潜入式系统 | PCB设计 | 单片机资料下载 | 工具/软件下载 | 技术经验分享 | 单片机技术人生 | IC资料下载 | 数字电路 | 模拟电路 | 单片机空间
当前位置:主页>嵌入式系统>文章内容
基于GTK+的组合构件设计
来源:单片机信息网 作者: 发布时间:2008-09-18 阅读次数: 【大 中 小】【收藏本文】 【打印
图形用户界面是用户与仪器的唯一交互方式,也是整个嵌入式系统一个尤为重要的方面。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 组合构件的定义


图1 GTK+软件结构层次图

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

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

  2 组合构件的设计难点分析

  自定义组合构件的设计首先需要对GTK+自定义构件的设计非常熟悉,对GTK+构件的设计风格和继承关系很了解,并且能掌握对各个库的相应关系。组合构件它不是单纯从某个构件继承下来的,只是组合任何想要组合的构件来实现某项功能。因此必须考虑该组合构件的父类问题。

  组合构件也跟构件库里面的构件一样,它也可能要接收信号并做出相应的处理。因此挂接信号也是设计需要考虑的问题。

  作为一个构件,组合构件也应有自己的风格,由于组合构件是多个构件的组合,每个构件又有其不同的风格,如何确定当前构件的风格也是设计的难点。

  组合构件的设计思想及其实现

  1 组合构件的设计思想

  通俗的讲,GTK+的构件库是基于C语言的,它不具有面向对象的特性,然而GTK+的确又是面向对象的,那是因为它用C语言来实现了C++编译 器的功能。因此它同样具有继承的特性,它的代码风格也延续了面向对象的设计风格。在GTK+库中,直接继承自GtkObject对象的构件主要是 GtkWidget,它几乎是所有可视构件的共同祖先,大多数构件共有的属性都包括在其中。与其他GUI开发工具不同的是,我们不用直接创建 GtkObject或GtkWidget对象,而是用定义对象的实例结构和类结构的方式来定义对象,然后再通过类型注册来实现对象。当前笔者就根据组合构 件的特点,直接从GtkObject继承。它与GtkWidget是一种并行关系。和其他构件一样,它也有相应的宏定义,来进行各种强制转换和类型获取。

  任何一个构件都有其创建对象函数,组合构件也是一样,在对象中定义各个成员构件,在创建对象时将其一一创建,并根据需要对其各个构件来进行属性 设定,最后返回的是组合构件对象本身。关于信号的设定也是和其他构件的方法一样,在类的结构体中定义信号,并在类的初始化中对信号进行定义。

  组合构件的接口设计应可以根据当前总体设计的需要,而不是像一般构件一样完全的独立出来,它具有自己的特色,并不需要刻意遵守一般构件的要求。这也是组合构件的灵活性所在。

  GTK+允许用户通过rc文件来定制应用程序的主题风格,即设置构件颜色、字号大小,并为构件添加背景图标等。而对于组合构件而言,由于其为多 个构件的组合,每个构件都有其相应的风格设计,因此严格的讲它本身是不具有风格设计的,所谓组合构件的风格设计,就是对各个构件进行风格设计,并将其风格 设定封装在一个函数里,对外只提供一个接口。对于组合构件,如果不进行风格设计,它将沿用整个图形界面的风格设计。

  2自定义组合构件在任意波形发生器图形界面中的实现

  笔者参与开发的任意波形发生器以linux作为操作系统平台,以320×240的彩色液晶为显示器,以精简版的X Windows作为图形用户界面系统,以GTK+库为图形编程库。下面就是笔者设计的任意波形发生器的整个图形界面,在图形界面中可以看到下面有波形显示和坐标值显示。笔者利用组合构件的设计思想来设计该图形界面的波形显示部分,通常情况下组合构件的设计是要符合当前总体设计的某项要求,因此组合构件有可能只是为了实现某项实际的功能而具体设计的一个构件。在任意波形发生器的设计中,笔者将下面的波形显示部分设计为一个组合构件,简单地称之为awgwavegraph,若将其命名为gtkwavegraph是不合理的,因为它仅仅是为了实现任意波形发生器的 图形界面而设计的一种多构件组合,而不是一个严格意义上的全新构件。在设计awgwavegraph时考虑到构件本身只是对某个信号进行响应,而不需要对 信号进行获取,因此该组合构件并没有设计获取信号。所谓的响应,只是需要对坐标进行更新,根据此项需求,笔者提供了一个更新坐标的函数,接口仅仅是组合构 件本身。图2即为任意波形发生器图形界面。


图2 任意波形发生器图形界面

  结束语

  基于GTK+的组合构件设计,效率高,占用资源少,可增强程序的茁壮性,在嵌入式系统的图形界面编程领域有着良好的发展前景。目前,此项组合构件已经应用到500MPS任意波形发生器中。它使用方便,稳定性好,为开发人员提供了良好范例。



上一篇:GPS和嵌入式数据库   下一篇:Camera Link协议和FPGA的数字图像信号源设计

标签:设计 组合 基于 构件 GTK 图形 定义 一个 风格 对象 函数 点此搜索本站更多相关信息...搜索更多相关内容..

您可能还感兴趣的内容: 深圳今科电子单片机解密、IC解密服务 今科电子单解机、IC解密业务是怎样的流程?

此页的访问者还关注了下面这些相关资讯


·Camera Link协议和FPGA的数字图像信号源设计
·GPS和嵌入式数据库
·FPGA系统内部逻辑在线测试技术研究
·FPGA的多路可控脉冲延迟系统
·手机集成GPS的注意事项
·DDR2器件HY5PS121621BFP在嵌入式系统中的应用
·同步数字复接的设计及其FPGA实现
·并行频域OCT图像预处理系统的DSP硬件平台设计与实现
·采用C8051F020设计的嵌入式测试仪
·CC2431的无线定位引擎及其应用改进
·基于SOPC的USB密码模块硬件与固件设计
·嵌入式应用软件任务划分的原则
·USB2.0设备控制器IP核的AHB接口技术
·嵌入式操作系统实时性比对与评价
·单片机的状态迁移与复位操作
·基于CPLD的USB下载电缆设计
·动态电压与频率调节在降低功耗中的作用
·基于EmJTAG的ARM嵌入式系统调试工
·Windows CE.Net下的矩阵键盘开发设计
·μC/OS-II的多任务系统实时性分析与优先级分配
·I²C串行EEPROM应用系统的健壮性设计
·SOPC中自定义外设和自定义指令性能分析
·动态可重构系统的通信结构研究
·基于以太网的控制器网络的嵌入式网关开发
·MMC在便携式数据采集系统中的应用
·基于ZigBee的无线管理系统设计
·SoC软硬件协同验证技术的应用研究
·基于SAlll0微处理器的掌上电脑液晶显示器的设计与实现
·基于TMS320F2812的快速以太网通信系统平台
·WinCE系统下GSM Modem的测控应用
·嵌入式音频处理基础
·基于OMAP5910的移动媒体播放机设计
·网络控制器DM9000A在嵌入式系统中的应用
·网络处理器IP2022及其在嵌入式牌照识别系统中的应用
·基于C8051F的动平衡测试系统
·WinCE线程和内存管理
·基于嵌入式 Linux 的移动终端的软件设计
·基于Lonworks总线的嵌入式智能节点的设计
·基于Linux的嵌入式数据采集系统
·PC机与嵌入式系统的多线程串行通信实现


版权声明:
( 更多版权详述 | 隐私政策 )

1、凡本网注明“来源:单片机信息网”或“单片机论坛”的文字、图片和音视频作品,版权均属深圳市今科电子有限公司所有,任何媒体、网站或个人未经本网书面授权不得转载、链接、转贴或以其他方式使用;已经本网书面授权的,在使用时必须注明“来源:单片机信息网”或“单片机论坛””。
2、本网未注明“来源:单片机信息网”或“单片机论坛”的作品均为转载稿,本网转载稿件只为传递更多信息,并不意味着认同其观点或真实性。如其他媒体、网站或个人转载使用,必须保留本网注明的“稿件来源”,并自负法律责任。
3、对于单片机信息网通过单片机论坛发布的作品,本网受著作权人委托禁止任何媒体、网站或个人在未经书面授权的情况下转载使用。
4、为维护自身权益、尊重作者版权,单片机信息网特委托深圳市律师协会为本网站法律顾问。对于违反本声明的,单片机信息网律师将依法追究其责任;对于刊载作品涉及版权等问题的,请作者在两周内与网站管理或张朝阳律师联系。
责任编辑:今科电子
双击复制本文网址,发送给您QQ/MSN上的朋友:
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。

·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为
§最新评论
今科热门解密系列
·PIC芯片DSP系列单片机解密PIC芯
·Freescale单片机解密飞思卡尔芯
·飞思卡尔(Freescale)单片机解密/
·pic18f系列单片机解密
·三星(Samsung)系列单片机极速解
·飞林Feeling芯片系列MCU单片机/I
·MICROCHIP微芯(PIC)系列单片机/M
·单片机破解的常用方法及应对策略
·IC卡预付费电度表的安全及防范技
·单片机解密 单片机解密方法 单片
·PHILIPS系列单片机解密
·独家STC单片机解密
·我对红外遥控信号的解码思路
·51系列单片机解密(数分钟搞定)
·芯片解密业务流程介绍
·单片机解密后提供什么文件?
·单片机解密后为何要提供厂家的专
·芯片是如何被解密的?
·SST系列MCU单片机/IC/芯片解密
·INTEL系列单片机/IC/芯片解密
·ISSI系列MCU单片机IC破解芯片解
·ZILOG系列MCU单片机IC破解芯片解
·MOTOROLA系列MCU单片机IC破解芯
·LG(HYUNDAI系列MCU单片机/IC破
·MCPLD/EPLD系列MCU单片机IC破解
·新茂系列MCU单片机IC破解芯片解
·PHILIPS系列MCU单片机IC破解芯片
·MXIC系列MCU单片机IC破解芯片解
·(ATMEL)51系列MCU单片机IC破解芯
·华邦芯片系列MCU单片机/IC/芯片
·(MICROCHIP)微芯(PIC)系列MCU单
·CYPRESS系列MCU单片机IC破解芯芯
·Sinowealih系列MCU单片机IC破解
·Tenx系列MCU单片机IC破解芯片解
·松翰(SONIX)系列MCU单片机IC破解
·义隆(EMC)系列MCU单片机IC破解
·合泰(HOLTEK)系列MCU单片机IC破
·麦肯(MDT)系列mcu单片机IC破解芯
·今科单片机解密服务
·单片机程序开发
热点技术文章文献
·嵌入式系统的技术特点及前景展望
·加密存储芯片AT88SC1616的原理和
·编写适合自己需要的printf()函数
·基于ARM的嵌入式网络收音机的设
·嵌入式Linux系统中I2C总线设备的
·嵌入式Linux的GDB调试环境建立
·用USB启动Windows XP Embedded
·基于ARM7的指纹考勤机设计
·HC(S)08单片机的高效C语言编程
·基于Linux和S3C2410的嵌入式图象
·基于FPGA的32 Kbit/s CVSD语音编
·嵌入式实时Linux的技术研究
·X86嵌入式处理器开发
·基于WinCE的ARM视频监控系统
·如何制作嵌入式Linux文件系统
·模拟器开发以及嵌入式系统内核调
·基于DM642的嵌入式网络视频服务
·嵌入式系统的发展趋势:网络互联
·嵌入式数据库Berkeley DB 环境使
·嵌入式系统中USB主机控制器的设
·基于mClinux的嵌入式USB接口设计
·54M无线网络适配器在嵌入式系统
·Keil C动态内存管理机制分析及改
·使用虚拟机嵌入式Linux开发前的
·基于AVR单片机的嵌入式“瘦服务
·用MSP430实现的嵌入式因特网终端
·基于TinyXml的嵌入式Linux
·Java能否主演嵌入式应用开发?
·嵌入式芯片同质化的对策
·32位ARM嵌入式处理器的调试技术
今科推荐产品
·51系列单片机解密(数分钟搞定)
·今科单片机解密服务
·单片机程序开发
·小家电(厨卫电器)系列产品
·灯饰控制系列产品
·四键遥控器系列产品
·红外遥控器系列产品
相关技术文献资讯
·Camera Link协议和FPGA的数字图
·GPS和嵌入式数据库
·FPGA系统内部逻辑在线测试技术研
·FPGA的多路可控脉冲延迟系统
·手机集成GPS的注意事项
·DDR2器件HY5PS121621BFP在嵌入式
·同步数字复接的设计及其FPGA实现
·并行频域OCT图像预处理系统的DSP
·采用C8051F020设计的嵌入式测试
·CC2431的无线定位引擎及其应用改
·基于SOPC的USB密码模块硬件与固
·嵌入式应用软件任务划分的原则
·USB2.0设备控制器IP核的AHB接口
·嵌入式操作系统实时性比对与评价
·单片机的状态迁移与复位操作
·基于CPLD的USB下载电缆设计
·动态电压与频率调节在降低功耗中
·基于EmJTAG的ARM嵌入式系统调试
·Windows CE.Net下的矩阵键盘开发
·μC/OS-II的多任务系统实时性分
·I²C串行EEPROM应用系统的健
·SOPC中自定义外设和自定义指令性
·动态可重构系统的通信结构研究
·基于以太网的控制器网络的嵌入式
·MMC在便携式数据采集系统中的应
论坛最新讨论资讯
芯片解密常见问题
· 什么是单片机?
· 单片机要如何加密?
· 单片机芯片是如何被解密的?
· 单片机解密后提供什么文件?
· 芯片解密为何用专用格式文档?
· 芯片解密是怎样的业务流程?
首页 - 隐私政策 - 版权申明 - 网站地图 - 产品中心 - IC解密中心 - 企业文化 - 代理加盟 - 公司简介 - 人才招聘 - 常见问题 - 我要投稿 - 联系我们 - 返回顶部
[单片机信息网] .© 2006-2009 版权所有,严禁非法复制与建立镜像.运营商:[今科电子] 公司地址:中国.深圳/上海 E-Mail:renbangent#126.com sales#techmcu.com(换#为@)
深圳公司 电话热线:+86 0755-82964200 82964201 82964700 传真:0755-82964432 支持手机:13684994966 业务QQ: 501995683 联系人:王小姐 张小姐(工程师) 罗先生(高工)
上海公司 电话热线:+86 021-63062380 15001885509   传真:+86 021-63062380-6   技术支持:15001885509 业务QQ:xxxxxxxx   联系人:郑小姐(业务) 陆工(工程师)
Optimized for 1024x768 to Firefox,Opera and MS-IE6 or higher,Template designed by: Berlin Lee.Web Support[FuAn Network] ICP Record No.:07053756 Webmaster