Linux下嵌入式GUI编程环境.doc

Linux下嵌入式GUI编程环境.doc

ID:28100414

大小:39.50 KB

页数:8页

时间:2018-12-08

Linux下嵌入式GUI编程环境.doc_第1页
Linux下嵌入式GUI编程环境.doc_第2页
Linux下嵌入式GUI编程环境.doc_第3页
Linux下嵌入式GUI编程环境.doc_第4页
Linux下嵌入式GUI编程环境.doc_第5页
资源描述:

《Linux下嵌入式GUI编程环境.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、Linux下嵌入式GUI编程环境孙宗君本文介绍在Linux下利用Microwindows和Fltk进行GUI编程的一些经验,如果需要在X-Window上编程的话,请您阅读Xlib库编程指南或QT库编程手册,它们提供了完备的控件集合,我想本文对您没有太多的可读性。Microwindows和Fltk程序适合于对硬件要求苛刻的环境,由上述两种库产生的程序短小,因此在某些性能和效果方面远不能和台式机上的GUI程序相提并论。我首先介绍一下两者的概况。Microwindows是一个遵循GPL的嵌入式GUI开发环境,几乎全部用C

2、语言编写,有一点点用汇编语言编写,因此如果您想利用其进行开发的话,您必须具备C语言的知识。Fltk也是一个遵循GPL的自由软件,它是用C++语言编写的一个在Microwindows之上的控件库,提供了许多GUI控件,如按钮、列表框和对话框等等。如果您手头没有上述两者的二进制库,那么您可以到共创开源公司的网站上去下载其源代码文件,源码文件需要编译,在您的机器上必须安装一个C和C++语言编译器,还要有make工具,最好使用GNU的gcc和make工具。可供下载的网站网址为:共创开源公司:http://www.cosof

3、t.org.cnMicrowindows:http://www.microwindows.orgFltk:http://www.fltk.org将上述文件下载到本地,对压缩文件包解压后分别产生microwin和flnx两个目录,请阅读两个目录下的Readme文件。对于Microwin请修改src目录下的config文件,里面设置了许多编译控制开关。你可以选择屏幕、键盘和鼠标的驱动程序种类,如果您有不清楚的问题,可以到相关的邮件列表或共创开源公司进行联系,那里或许可能会找到你的答案。对于Fltk,目录flnx下有三个

4、目录:FL、src、test,第一个是库头文件,第二个是库源文件,第三个是示例程序源文件。请运行flnx目录下的configure程序,在该命令后面加一选项-prefix,后面接microwin文件的目录。如:./configure-prefix=/home/cclinux/microwin/src然后make,便可以生成相应的库文件和示例程序。现在我们分别介绍在Microwindows下进行GUI编程的一般步骤,在Microwindows中,整个应用程序被分为三层:设备驱动层、图形引擎层和编程API,对于我们这些

5、开发人员来讲,我们只需利用API即可。如果您是个编程高手并且曾在编过其它GUI程序,您可以将三层代码全部分析一遍,对您大有裨益。编程API分为两种风格,一种是Windows的消息机制,另一种是客户/服务器方式。这里仅介绍后一种编程风格。在客户/服务器环境下,你必须先启动服务器程序nano-X,然后启动相应的客户程序。如果程序启动后,您发现鼠标无法应用,请运行micrown/src目录下的mouse.sh脚本文件,该程序启动鼠标服务器程序。我们举一个具体的程序来分析其编程过程,该例子取自microwin/demos/

6、nanox目录下的字体示例程序,考虑篇幅原因对该程序有所删改。这个示例程序用来创建一个窗口,并在窗口中随机某个位置显示指定的字体,在Microwindow中可支持系统内置字体、truetype字体和中文字体。#include#include#include"nano-X.h"所有的示例程序几乎都要包含nano-X.h头文件,该文件定义了客户/服务器方式下编程所用到的常量、数据结构、事件类型和API原型,这些常量和API都以GR(或Gr)开头。#defineCLIP_POLYGO

7、N0/*=1forpolygonalregiontest*/该程序还可以测试多边形区域的剪裁、刷新,如果你需要测试这些内容,将上一行的0改为1,打开编译开关。#ifHAVE_HZK_SUPPORT#defineBIG5#defineMAXFONTS1#ifndefBIG5#defineFONT1"HZKFONT"....#else#defineFONT1"HZXFONT"//汉字库16x16或12x12....#endif#elifHAVE_T1LIB_SUPPORT#defineMAXFONTS5#defineF

8、ONT1"bchr"....#else/*truetype*/#defineMAXFONTS5#defineFONT1"lt1-r-omega-serif"....#endifstaticchar*names[5]={FONT1,FONT2,FONT3,FONT4,FONT5};上述代码用来定义要创建的字体名称,并将其放在数组names中.同常见的C程序一样

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。