嵌入式图形界面Linux下的应用程序怎么做图形界面

在桌面Linux环境下开发图形界面程序的方案对比
我的图书馆
在桌面Linux环境下开发图形界面程序的方案对比
主题&在Linux下开发GUI程序的方法有很多,比如Gnome桌面使用GTK+作为默认的图形界面库,KDE桌面使用Qt作为默认的图形界面库,wxWidgets则是另一个使用广泛的图形库,此外使用Java中的Swing/AWT组件也可以用于开发Linux下的GUI应用。本文将依次介绍GTK+、Qt、wxWidgets和Swing/AWT,对其进行对比分析。1. GTK+平台支持虽然GTK+最初是为X Window系统开发的,但是目前已经发展成为一个跨平台的图形界面API,其支持的平台包括:LinuxUnixWindowsMac OS X许可协议GTK+基于LGPL协议发布,因此可以将GTK+的二进制动态链接库文件整合到私有软件中而无需额外授权。语言支持GTK+本身是用C语言编写的,但是可以很方便地通过语言绑定(language binding)和其它语言协同工作,GTK+不同版本的语言绑定支持情况如下图所示。其中带有Gnome标记的上面7个语言是GTK+官方支持的,减号标记则表示只支持部分功能。其它特性与wxWidgets和Qt不同,GTK+支持使用纯C语言进行开发,此外还有一个基于C++的封装项目叫GTKMM。GTK+是基于GLib构建的,其中GLib是一个通用的C语言库,类似于C++中的STL,提供了对动态数组、链表、队列、散列表、平衡二叉树、线程操作和XML解析等功能。在所有的平台上,基于GTK+的应用都看起来完全一样,除非应用了主题。GTK+总是通过主题来模拟原生控件。在Windows平台下,可以通过使用Wimp主题来获得Windows的原生外观。2. Qt平台支持Qt是目前使用最广泛的跨平台应用程序框架(Application Framework),其支持的平台包括:WindowsMac OS XLinux / Embedded Linux / VxWorksSolarisAndroidiOSBlackBerry许可协议Qt支持LGPL 2.1协议和一个商业协议,因此可以将Qt的二进制动态链接库文件整合到私有软件中而无需额外授权。如果需要使用静态链接将所有代码打包为单个的可执行文件,则需要公开源代码。如果既要生成单个可执行文件,又不想公开代码,则需要向Digia购买商业使用授权。语言支持Qt是一个基于C++的应用程序框架,但是同GTK+一样,可以通过语言绑定支持更多的语言,包括:PythonJavaRubyBASICAdaPerlC#DPascalLuaHaskell需要注意的是,使用其它语言封装Qt的原生接口会带来一定程度上的性能损失。其它特性除了与图形界面相关的部分之外,Qt还包括许多其它的类,比如:容器(数组、队列、链表、集合、映射等)网络操作(基本Socket、DNS操作、HTTP操作、SSL等)多媒体操作(音乐、视频回放、摄像头控制等)SQL数据库操作OpenGL绘图XML操作串口操作基于Webkit的浏览器引擎值得一提的是,Qt SQL模块提供了对嵌入式数据库SQLite的支持,无需引入外部的数据库源码。内容丰富的各种类库极大地方便了开发,整个Qt开发工具包就组成了一个独立的一站式开发平台。和GTK+一样,Qt并不使用系统提供的控件,而是通过主题模拟这些控件。但是在一些特定的平台,比如Mac OS X和Windows上对于一些最基本的控件通过本地系统调用实现。Qt通过MOC系统对C++语言进行了扩展,提供了所谓的“信号-槽”(signal-slot)机制。基于信号-槽的事件处理非常优雅,缺点则是是编译系统失去了通用性。Qt的原生IDE是Qt Creater,同时兼容Qt的其它IDE也非常多,包括Visual Studio、Eclipse、XCode、Edyuk。3. wxWidgets平台支持wxWidgets是另一个非常流行的跨平台图形界面库。而GTK+ / Qt不同,wxWidgets并不是通过绘图来模拟控件,而是通过系统本地调用构建完全原生的图形界面。wxWidgets支持的平台包括:wxGTK: 使用Linux下的GTK+构建图形界面wxMSW: 使用Win32 API构建图形界面wxMac: 使用Mac OS下的Carbon构建图形界面wxOSX/Carbon: 使用Mac OS下的Carbon构建图形界面wxOSX/Cocoa: 使用Mac OS下的Cocoa构建图形界面wxX11: 使用Linux下的X11的通用显示接口构建图形界面wxMotif: 使用Linux下的OpenMotif和Lesstif构建图形界面注意到这里的描述方式有所不同,因为wxWidgets是基于本地接口构建UI的。许可协议wxWidgets使用wxWindows License作为许可协议,这个协议是基于LGPL的,但是有一点不一样:允许用户在使用静态链接的情况下不公开应用代码,因此实际上比LGPL协议更宽松。语言支持wxWidgets是基于C++编写的的,同时还支持以下的语言绑定:AdaBASICDDelphiErlangGoHaskellJavaLuaPerlPHPPythonRuby其它特性在API和编程风格上,wxWidgets和MFC非常相似,但是封装的很多类比MFC更高级。很多知名的MFC程序都会选择用wxWidgets来改写,来快速移植到其它平台,如eMule用wxWidgets移植出aMule和xMule。除了基本的图形界面、布局、事件系统外,wxWidgets还提供了很多其它的模块,包括:wxHTML: 进行HTML渲染wxMedia: 对各种多媒体操作提供支持wxNet: Socket支持wxXML: XML文件读写支持wxWidgets集成的功能相对于Qt而言较少,但是足够完成绝大多数的常见任务。4. Java / Swing / AWT平台支持Swing和AWT是Java中最常用的两种图形组件。理论上所有支持Java虚拟机的平台都可以使用Swing和AWT,包括:WindowsMac OS XLinuxSolaris当然还有大多数的移动、嵌入式平台,这里就不一一列举了。许可协议Java的许可协议情况有些复杂,网上有不少相关的讨论,如&&、&&和&。目前Oracle和Android之间就存在着一些纠纷,但是目前似乎没有桌面Java应用由于授权问题被起诉,作为开发应用的工具,Java目前应该还是比较安全的。其它特性AWT是Abstract Window Toolkit(抽象窗口工具包)的缩写,这个工具包提供了一套与本地图形界面进行交互的接口,与wxWidgets类似,因此具有相对比较高的运行效率。而在JDK 1.2之后,出现了一组新的图形API,叫Swing。Swing是基于AWT构建的,并且采用与Qt类似的方式通过绘图模拟各个控件,因此灵活性大大增加。通常我们看到的Java应用程序独特的外观大多都是基于Swing构建的。由于Java本来运行效率就较低,搭配Swing后就更慢了,因此在嵌入式平台AWT始终是构建图形界面的首选方案。桌面应用则通常使用Swing搭建。总结由于本项目组的成员并不熟悉Java,故其学习成本相对更高一些。综合各种因素,目前Qt还是在Linux平台下开发图形界面程序当之无愧的首选方案。
TA的最新馆藏[转]&[转]&[转]&嵌入式Linux图形界面开发【人人网 - 分享】
嵌入式Linux图形界面开发
分享这个视频的人喜欢
分享这个视频的人也爱看
王者归来!
欠缺一点心动
今天不好看可我不让说
做一个勤劳快乐的小主播?
等外卖的一小时
月底咋地了依旧潇洒
热门视频推荐
热门日志推荐
同类视频推荐
北京千橡网景科技发展有限公司:
文网文[号··京公网安备号·甲测资字
文化部监督电子邮箱:wlwh@··
文明办网文明上网举报电话: 举报邮箱:&&&&&&&&&&&&
请输入手机号,完成注册
请输入验证码
密码必须由6-20个字符组成
下载人人客户端
品评校花校草,体验校园广场我最近研究嵌入式,用的是linux+arm,涉及到lcd的编程的时候就要做一些图形编程了,我到网上查了好久,有几种选择,比如Qt、gtk。还有查到linux下面java也可以做GUI设计。我会java和c编程,不会也不想学c++,qt用c++吧,应该是没有的选了,我想就在gtk和java中间选择,他们都可以做linux的GUI设计,但是这两个都可以做基于嵌入式的图形开发不啊?能够移植不啊?
如果可以那个更加好啊?
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 4, 距离下一级还需 1 积分
一粒金砂(初级), 积分 4, 距离下一级还需 1 积分
我先选择gtk+拉,如果可以的话,再研究一下SDL呵呵
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
不是吧&&GTK+用C++吗?
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
还可以选择minigui,易学易懂,是个不错GUI,当然界面不如QT细腻、漂亮。
在线时间1 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
gtk只有一种选择&&,根据你 说的
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
在嵌入式设备上现在很少用gtk的,java速度较慢.minigui是完全用c开发的.
在线时间0 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
qt, 商业产品很多用这个的
在线时间1 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
见过有人直接在嵌入式系统上X,裁减后X+GTK才3M。
所以,用什么样的图形,完全根据你的系统的需要,以及如何去定制图形系统。
如果用Java,也必须要有一个低层的gui,因为java的gui是建立在其他gui之上的。(MIDP倒可以建立在一个简单的图形驱动层之上)。
要比较各种嵌入式gui,这里是一篇好文章:/articles/AT.html
EEWORLD 官方微信
Powered by
逛了这许久,何不进去瞧瞧?基于嵌入式Linux的图形界面显示系统的设计
基于嵌入式Linux的图形界面显示系统的设计
发布: | 作者: | 来源:
| 查看:627次 | 用户关注:
摘要:本文详细描述了基于uClinux嵌入式操作系统的图形界面显示系统的实现方法,并对uClinux下Framebuffer驱动程序编写进行了专门探讨。关键词:uClinux,Microwindow,Framebuffer驱动程序1前言在嵌入式系统这个IT产业的新领域,Linux以其所具备的稳定、高效、易定制、易裁减、硬件支持广泛的特点,结合其免费、源码开放的特征。使得Linux在嵌入式操作系统中的地位越来越重要。越来越多的嵌入式系统,包括PDA、机顶盒、WAP手机等
摘要:本文详细描述了基于uClinux嵌入式操作系统的图形界面显示系统的实现方法,并对uClinux下Framebuffer驱动程序编写进行了专门探讨。关键词:uClinux ,Microwindow,Framebuffer 驱动程序1前言&&& 在嵌入式系统这个IT产业的新领域,Linux&以其所具备的稳定、高效、易定制、易裁减、硬件支持广泛的特点,结合其免费、源码开放的特征。使得Linux在嵌入式操作系统中的地位越来越重要。越来越多的嵌入式系统,包括 PDA、机顶盒、WAP 手机等等系统均要求提供全功能的 Web 浏览器。这包括 HTML 的支持、JavaScript 的支持,甚至包括 Java 虚拟机的支持。而这一切都要求有一个高性能、高可靠的 GUI 的支持。这些系统一般不希望建立在庞大累赘的、非常消耗系统资源的操作系统和 GUI 之上,比如 Windows 或 X Window。但是,在出现 Linux 系统之后 GUI 仍然是一个问题。关键是 X Window 太过庞大和臃肿。uClinux是专为无存储器管理单元的处理器定制的嵌入式Linux操作系统。其内嵌的Microwindow为嵌入式系统图形界面提供了良好的支持。2系统的组成结构&&& 基于uClinux的嵌入式图形界面显示系统分为软件和硬件两大部分。软件由uClinux、Framebuffer驱动程序和Microwindow三部分组成。Motorola嵌入式CPU 5272、EPSON的13506 LCD 控制器和TRULY公司的MCT-G320240DNCW液晶显示屏组成图形界面显示硬件系统。结构如图1所示。&&& 硬件设计环境:开发板是Motorola 5272C3,uClinux内核版本号是2.4.17。& 3 Microwindow的架构&& Microwindow是一种轻量级的GUI,具有轻型、占用资源少、高可靠性的特点。Microwindow 是一个非常适合于工业控制实时系统以及嵌入式系统的可定制的、小巧的图形用户界面支持系统。Microwindow是一种分层设计的架构。最底层是一组屏幕、鼠标/触摸屏、键盘的抽象接口,不依赖任何特殊的硬件。中间层是可移植的图形引擎。最高层是各种API,供图形应用程序调用。目前有两种API,一种是ECMA& APIW,第二种是NANO-X& APIS.。这些API与win32和x window系统基本上兼容,使应用程序移植非常容易。&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& && 在uClinux下Microwindow最底层的SCREEN 抽象接口建立在linux framebuffer 设备基础上。Framebuffer device 是对图形显示硬件设备的抽象,它代表视频硬件的帧缓存。本文将重点讨论uClinux下针对具体硬件环境如何设计其Framebuffer设备驱动程序。4 Framebuffer设备驱动程序的设计&&&& Linux下设备分为字符设备、块设备和网络设备接口三大类。那么Framebuffer设备属于哪一类呢?刚开始设计时容易使人困惑。其实对使用者而言,帧缓冲设备也就是Framebuffer device和目录/dev下的其他设备没有区别。它是一个字符设备,使用主设备号29,次设备号用于帧缓冲设备之间的区分。&& 例如:&&&&&&&& 0=/dev/fb0&& First frame buffer&&&&&&&& 1=/dev/fb1&&& Second frame buffer&&&&&&&&& …&&&&&&&& 31=/dev/fb31& 32nd&& frame buffer&&&&&&&& 0~31就是次设备号 &&& 帧缓冲驱动程序主要依靠四个数据结构。这些结构定义在 include/linux/fb.h程序内。它们分别是fb_info、fb_var_screeninfo、fb_fix_screeninfo和fb_monospecs。后三个结构可以在用户空间访问,结构 fb_info只能在内核空间访问。&&& 结构 fb_fix_screeninfo定义了视频板卡硬件的某些固定的特性。这些特性在硬件初始化时就被定义了以后不得修改。在这个结构体中最重要的成员是smem_len和line_length。前者指示显存的大小,后者提供了一个显示行的byte统计数,使显存指针很方便的移到下一显示行。&&& 结构fb_var_screeninfo定义了视频硬件一些可变的特性。这些特性在程序运行期间可以由应用程序动态改变。由于篇幅有限在此只对这个结构体中主要的成员作出解释,详细解释请参见fb.h。成员变量xres 和 yres定义在显示屏上真实显示的分辨率。而xres_virtual和yres_virtual是虚拟分辨率,它们定义的是显存分辨率。比如显示屏垂直分辨率是400,而虚拟分辨率是800。这就意味着在显存中存储着800行显示行,但是每次只能显示400行。但是显示哪400行呢?这就需要另外一个成员变量yoffset,当yoffset=0时,从显存0行开始显示400行,如果yoffset=30,就从显存31行开始显示400行。&&& 在这四个结构中最重要的结构就是fb_info,它只能在内核空间访问。其内部定义了struct fb_ops, 结构fb_ops成员就是由一系列Framebuffer 操作函数组成。&&& 结构fb_monospecs在2.5.x内核下才会被采用,在目前内核下不使用。&&& 如前所述就使用者而言,帧缓冲设备和一般的字符设备没有区别。因此写视频硬件的设备驱动程序就有两种选择,一种是把视频硬件抽象成一般的字符设备,驱动程序的写法和一般的字符设备驱动类似。第二种就是帧缓冲设备的驱动程序的编写。第一种方法不规范,而且实现功能有限,故不提倡。下面用与字符驱动程序类比的方法介绍如何编写帧缓冲驱动程序。&&& 字符驱动程序用函数register_chrdev向内核注册设备。register_chrdev需要三个参数,参数一是主设备号,参数二是对应与参数一主设备号的驱动程序名;参数三用来登记驱动程序实际执行操作的函数指针,它指向struct file_operation。编写字符驱动程序的主要工作就是编写各个子函数并填写file_operation各个域。当用户进程利用系统调用对设备文件进行操作时,系统通过设备文件的主设备号找到相应的设备驱动程序。然后读取这个数据结构相应的操作函数指针,接着就把控制权交给这个函数。这就是linux驱动程序工作原理。&&& 帧缓冲设备驱动程序与此类似,其调用register_framebuffer注册一个framebuffer设备。它只有一个参数就是前面介绍的struct fb_info, 其内部定义了结构成员fb_ops。编写帧缓冲驱动程序主要就是编写fb_ops各个成员函数。与字符驱动设备不同的是帧缓冲驱动程序并不实现ioctl调用。帧缓冲驱动程序的初始化函数在linux/drivers/video/fbmem.c中登记。所有的帧缓冲驱动程序的ioct调用由fbmem.c统一实现。由fbmem.c根据当前正在工作的帧缓冲设备提供ioctl调用。5 硬件电路的设计&&&&&&&& 5272是Motorola公司Coldfire系列嵌入式CPU,在Motorola公司嵌入式CPU中属于中低档产品。低档不等于低效,在主频66M时可以达到63MIPS,接近MPC860的MIPS。并且外围电路接口丰富,在Coldfire系列中集成度最高。&&& 5272总线是一种32位同步数据地址总线,总线传输终止支持同步终止和异步终止。在5272与外围器件总线传输周期中,利用TA信号可以在总线传输周期插入等待时钟周期。实现总线传输的异步终止。5272总线接口使用BS0~BS3四个信号显示当前总线周期数据总线宽度。5272的I/O空间是内存映射的,所以没有专门的I/O地址空间。因为5272没有MMU单元,所以5272的内存空间是物理地址直接寻址。&&&&&&&& 液晶屏控制器是EPSON公司的13506。这是一款LCD/CRT/TV图形控制器。CPU接口广泛。拥有16bit宽度的EDO显存接口,显存最大可达2Mbytes。在16bpp的情况下最大分辨率可达640×480。支持虚拟显示,即显示图像尺寸可以大于屏幕实际尺寸。&&&&&&&& 下图是Coldfire 5272 CPU 与 EPSON13506之间的接口电路示意图。&&&&&&&& &&&&&&&&&& EPSON13506的CPU接口数据总线宽度是16位。5272是大印第安字节序,当总线宽度是16位时,数据总线高16位有效。EPSON13506 M/R#管脚用来控制当前读写是对显存的读写还是对13506 I/O寄存器的读写,5272地址线A21对其进行控制。这样在5272 CS6的地址空间中,地址21位是1就是显存的地址,为0就是13506 I/O寄存器的地址。5272地址总线A0并未接到EPSON13506 AB0管脚上,这是由于在EPSON13506 CPU接口模式 Generic1情况下,EPSON13506 AB0管脚必须接高电平。这样就无法实现对字节的寻址。为了实现对字节的寻址,可以通过一片CPLD进行逻辑运算实现对相应管脚的选择,实现字节寻址。&&& 整个电路设计的重点难点在于对EPSON13506 CPU接口类型的深入理解,显存和LCD液晶屏的连接比较简单,在这里就不再赘述。6结束语&&& 目前越来越多嵌入式系统要求图形显示界面,特别是在一些工业控制领域。本系统已经成功运用于色谱仪工作站上。其友好的人机界面大大降低了仪表操作难度,简化了操作流程,提高了生产效率。参考文献: [1]Allessandro Rubin,Linux Device Drivers O’Reilly&Assocates、Inc、1998[2]陈莉君,Linux操作系统内核分析[M].北京,人民邮电出版社,2000
本页面信息由华强电子网用户提供,如果涉嫌侵权,请与我们客服联系,我们核实后将及时处理。
设计应用分类
音箱分频器在线计算公式基于嵌入式linux的qt图形程序实战开发pdf|基于嵌入式linux的qt图形程序实战开发pdf完整版免费下载-东坡下载
东坡下载:内容最丰富最安全的下载站!
→ 基于嵌入式linux的qt图形程序实战开发 pdf完整版免费下载
这里小编分享基于嵌入式linux的qt图形程序实战开发pdf电子书这本书内容全面,体系完整,适合刚接触Qt的初学者查阅学习,也适合已经在工作中应用Qt的程序员和正在从事Qt开发的科研人员参考翻阅,还可以作为各大中专院校和培训机构的教材。基于嵌入式linux的qt图形程序实战开发目录第1章 认识Qt1.1 Qt介绍1.1.1 Qt扩展C++1.1.2 Qt模块1.1.3 Qt授权模式1.1.4 Qt特征1.1.5 不同平台的Qt简介1.2 Qt安装1.3 建立Qt交叉编译环境1.3.1 交叉编译器1.3.2 Qt Embedded for ARM的安装1.4 Qt工具介绍1.5 编写Hello Qt程序本章小结第2章 信号与槽2.1 理解信号与槽2.2 预定义的信号与槽实例2.2.1 信号2.2.2 槽2.2.3 信号与槽的关联2.2.4 元对象工具2.2.5 程序样例2.2.6 应注意的问题2.3 创建和使用用户信号与槽本章小结第3章 对话框设计3.1 QDialog类3.2 QDialog类中派生类3.2.1 QDialog类中的派生类3.2.2 派生类的实现3.2.3 添加函数人口3.3 使用QtCreator3.3.1 创建工程3.3.2 编辑工程3.4 其他对话框类使用实例3.4.1 常用的内建对话框3.4.2 Qt消息框本章小结第4章 创建主窗口4.1 QMain Window类4.2 创建窗口的方法和流程4.3 代码创建主窗口4.3.1 头文件4.3.2 实现文件本章小结第5章 自定义窗口部件5.1 QWidget类5.2 从QWidget中派生5.3 双缓冲技术本章小结第6章 部件布局6.1 Qt布局管理器6.2 Qt分裂器部件QSplitter6.3 栈部件QStacked Widget6.4 工作空间QWork Space6.5 综合应用实例本章小结第7章文本输入和表7.1 文本输入类7.2 子类化QTable Widget及使用实例7.3 QTable Widgetltem的子类化本章小结……第8章 容器类第9章 目录与文件处理第10章Qt中的事件机制第11章 二维图形的绘制第12章MDI程序设计第13章 Model/View结构第14章 Qt的网络编程第15章 数据库程序设计第16章 Qt多线程程序设计第17章 Qt4.5在S3C2440上的移植及应用程序的调试参考文献基于嵌入式linux的qt图形程序实战开发
安卓官方手机版
IOS官方手机版
基于嵌入式linux的qt图形程序实战开发截图
基于嵌入式linux的qt图形程序实战开发 pdf完整版免费下载
本类最新软件
本类软件推荐
4M / 05-30 / 完整版
6M / 05-30 / 官方版
4.4M / 05-27 / 免费版
537KB / 05-27 / 2017 完整版
537KB / 05-27 / 2017 无水印版
本类软件排行
本类软件必备
素材字体高考学习
请简要描述您遇到的错误,我们将尽快予以修正。
轮坛转帖HTML方式
轮坛转帖UBB方式

我要回帖

更多关于 嵌入式linux图形界面 的文章

 

随机推荐