开源中文网

您的位置: 首页 > 编程开发 > C++语言编程 > 正文

Linux下的RAD

来源:  作者:

听说过kylix吗?Kylix是Borland/Inprise软件公司3月20日正式在中国发布了其Kylix 软件。Kylix 是为Linux操作系统开发的第一个原始快速应用开发(rapid application development: RAD)工具,它结合了直观的设计工具、优化编译器、交互式调试器和完善的工具组件,从而为开发者提供了在Linux上快速开发网络、桌面和数据库应用程序所需的工具。 
  Kylix是从Delphi移植过来的,一切Delphi具有的优点它都有。Kylix 使开发者只需进行简单的拖放操作就可轻松、快速地构建复杂、高性能的Linux应用程序。Kylix 包括了CLX ,它集中了跨平台开发所需的一整套部件。CLX 将使开发者凭借基于部件开发的力量大大缩短高性能网络、数据库和桌面应用程序面市的时间。CLX 以获奖的Borland Delphi 部件库和C++Builder 为模本,它将使今天的Windows应用转移到Linux平台的过程变得简简单单。Kylix 提供了超过165种可重复使用、可定制和可扩展的CLX 部件,它们提高生产力的作用立竿见影。 
  NetCLX将帮助Apache开发商更快地进行网络服务器软件的开发。Net CLX结合了浏览器、服务器和数据库开发技术,能迅速构建可升级的支持大量用户和大量数据的网络应用。借助Data CLX和db Express,开发者可通过高速IBMDB2、Oracle8i、Inter Base和My SQL数据库驱动器轻松地将公司信息整合进应用程序。Kylix支持主要的Linux产品,如Red Hat、Su SE和Mandrake。 
  说白了,Kylix就是Linux下的Delphi和C++ Bulider,包括整个IDE,辅助工具和已经成功开发过很多应用的VCL。 
  介绍了这么多kylix的好处,是不是很想装一个试一试?kylix的软件要求如下: 
  1. 内核版本2.2或更高 
  2. libc 6.0 (glibc 2.1.2) 或更高版本 
  3. libgtk.so 1.2或更高版本 
  4. libjpeg 6.2 (libjpeg.so.62)或更高版本 
  5. libncurses.so 4 (libncurses.so.4) 或更高版本 
  6. 当然你还需要有Xwindow 
  要想运行Xwindow和kylix,你的硬件当然不能太差,至少需要64M内存吧,否则简直是找罪受。其实如果你的机子能流畅地是运行红帽6.2或7.0版本,那就完全没问题。该到下一步了。 
到以下几个网站下载一个去: 
http://www.borland.com/kylix/ 
http://download.linuxbyte.net/Development/Environments/kylix.zip 
ftp://soft.shunde.net/linux/Development/Environments/kylix/ 
http://www.linuxbyte.net/ 
在嵌入式系统领域,有不少GUI系统,如QNX Photon MicroGUI等,可是具体到嵌入式Linux领域又有哪些可供选择的GUI系统呢?

  在嵌入式环境底下,GUI系统的整体构架跟PC Desktop相去不远,例如绘图函数库、字型、事件处理等也都是嵌入式GUI系统所要面临的。但是嵌入式系统本身由于体积小、资源少的特点,所以在整体设计上必须较为严谨,必须考虑的条件更多,有时很像又回到了Dos下编制程序的年代,对于软件所占的存储量有时可以说是锱铢必较。

  Unix环境下的图形视窗标准为X Window System(以下简称X标准),Linux是类 Unix系统,所以顶层运行的GUI系统是兼容X标准的XFree86系统。X标准大致可以划分X Server、Graphic Library(底层绘图函数库)、Toolkits、Window Manager、Internationalization(I18N)等几大部分(详细内容见链接)。

  笔者认为,虽然X架构不错,但却不怎么适用于嵌入式环境,因为实际工作起来实在太过于庞大,因此许多嵌入式Linux GUI系统会把上述几点合并,甚至全部绑到一起,当然这样同时也会失去很多弹性与扩展功能,但为了适应于嵌入式系统,这也是一个解决问题的方法。本文下面就介绍一下现存的主流嵌入式 Linux下GUI解决方案。

  主流解决方案介绍

  Qt/Embedded

  Qt是Trolltech这家商业公司所开发的一个跨平台FrameWork环境,在X环境下可以看作是一套功能完整的用户界面工具包,它采用类似C+ +的语法,并且具备物件导向功能。跨平台的特性可以让使用Qt编写的软件,在Microsoft Windows 95/98/2000、  Microsoft Windows NT、MacOS X、Linux、Solaris、HP-UX、Tru64 (Digital UNIX)、 Irix、FreeBSD、BSD/OS、SCO、AIX等许多平台上执行。虽然是商业公司的产品,但是Qt走的却是开源路线,并遵循同样的游戏规则,提供免费下载,全部都是开放源代码,非商业用途亦采用GPL的版权宣告,著名的Open Source “KDE” 项目便是采用Qt所开发的。

  Trolltech也针对嵌入式环境推出了“Qt/Embedded”产品。与桌面版本不同,Qt/Embedded已经直接取代掉X Server及X Library等角色,所有的功能全部整合在一起。

  Qt/Embedded 同样具有跨平台的特点,省掉了不少移植软件的功夫,这样的概念和Java十分接近。同时它还采用模块化设计,其最大的好处是有弹性, Qt/Embedded号称最小可以缩到800Kb左右,最多可以长到3Mb(for Intel x86),这样的弹性也让 Qt/Embedded更适合在嵌入式环境下生存。

  另外,Trolltech公司还推出了针对PDA软件的整体解决方案QPE (Qt Plamtop Environment)。它从底层的GUI系统、Window Manger、Soft Keyboard到上层的PIM、浏览器、多媒体等,全部都考虑进去了。其主界面如图1所示 ,内部包括地址簿、计算器、世界时间、时间设置、记事本、终端、文件浏览器、帮助、媒体播放器、图像浏览器、文本编辑器等。

  相对其他GUI来说, Qt/Embedded 应该说是肥美型的产品,功能丰富,但能消化它的东西只能是高端产品,32MB内存是运行它的最小要求。因此,如果开发的产品不是高端的信息终端类产品,不应优先考虑 Qt/Embedded。

  GtkFB自从Qt推出了嵌入式版本之后,虽然GTK+并非商业公司所发展,但也加紧脚步推出了GtkFB方案,其宗旨就是要为嵌入式系统推出一套基于 GTK+的GUI解决方案。与Qt/Embedded类似,GtkFB也跳过X层直接与FrameBuffer沟通,因此也具有Qt/Embedded的几项优点,不过由于不是商业软件,在发展的速度上较为缓慢。

Kylix有点大,如果你是使用拨号上网,我强烈建议你去买一张D版光盘(并不是我鼓励使用盗版,正版你是买不起的)。下载回来的压缩包解压有三个文件:kylix.txt,kylix.bin,kylix.cue(我用的是field beta 3 enterprise版)。我们需要的是名为kylix.bin的文件,这个文件是不能直接在linux下直接运行的,它是一个光盘映象文件,你要用一个叫isobuster的软件将它解开,得到以下目录和文件:    dbupgrade,demos,interbase,patch, runimage,setup.data六个目录以及core,readme,license.txt,setup.sh四个文件。 
  以上工作都是在windows下实现的。现在启动linux,进入到含kylix的目录,命令行下运行sh setup.shkylix的图形安装向导会一步步引导你安装;或者在linux的文件管理起里直接点击setup.sh,kylix的图形安装向导会一步步引导你安装。如果你是光盘安装,运行如下命令: 
  mount /dev/hdx /mnt/cdrom 
  cd /mnt/cdrom 
  sh setup.sh 
  Kylix的安装界面相当友好,跟windows下的安装很相似。安装的主界面有以下几项内容: 
  Golbal Options(全局选项): 
  Install Path(安装路径)有以下几个可选:/usr/kylix,/usr/local/kylix,/usr/kylix,/opt/kylix, 
Link Path (关联路径)有如下几个可选:/usr/local/bin, /usr/locak/sbin,/usr/sbin,/sbin,/bin,/usr/bin,/usr/X11R6/bin 
  按默认值即可,无须修改。 
  Install Options(安装选项): 
  1.Main Program Files(主程序文件) 
  2.DbExpress 
  3.Internet Components(Internet组件) 
  4. Help Files(帮助文件) 
  5.Third Party Components(第三方组件) 
  6.Indy-Internet Direct 
  以上6个可选择安装,需要哪些就选哪些。不过如果不是硬盘空间紧缺,我建议你全部选上,以为总共也只需141M. 
  Dektop Menu Items(KDE/GNOME):桌面菜单项,选中该项安装成功会在KDE/GNOME的菜单上生成菜单项。 
  准备好之后,点击Begin Install按钮开始安装,几分钟之后即可安装成功。如果全部按照默认选项安装的话,安装程序会在/root产生一个kylix目录和.Borland目录。 
  现在我们来启动kylix,在桌面击右键,选Execute Command,输入startdelphi或者打开菜单,选择菜单项Borland->kylix,即可启动kylix。所先出现的是Logo图案:一只可爱的企鹅。接着是kylix的界面:哇,有没有搞错,这不是Delphi吗?确实kylix的界面跟Delphi没什么两样,但是功能没有 Delphi全面,毕竟是测试版嘛。现在对kylix的界面简要介绍一下。 
主菜单: 
  File Edit Search View Project Run Component Tools Help 
控件页: 
  Standard ,Additional,Common Controls,Dialogs,DBExpress,MIDAS,Data Controls,Internet,Indy Client,Indy Server,Indy Misc 
每页下的控件如下: 
Standard: 
Frames,Popmenu,Mainmenu,Label,Edit,Memo Button,CheckBox,RadionButton,ListBox ComboBox,ScrollBar,GroupBox,RadioGroup,Ppanel,ActionList 
Additional: 
SpeedButton,Bitbtn,MaskEdit,StringGrid,DrawGrid,Image,Shape,Bevel ScrollBox, 
CheckListBox,Splitter,ControlBar,LCDNumber,Timer,PaintBox    
Common Controls: 
TABcontrol,PageControl,StatusBar,TrackBar,ProgressBar,TextViewer, TextBrower,SpinEdit,HeadControl,ListView,TreeView,IconView,ToolBar, ImageList 
Dialogs: 
OpenDialog,SaveDialog,FontDialog,ColorDialog,FindDialog,ReplaceDialog 
DBExpress: 
SQLConnection,SQLQuery,SQLDataSet,SQLStoredProc,SQLTable,SQLMonitor,DataSource,SQLClientDataset 
MIDAS: 
ClientDataset,DataSetProvider 
Data Controls: 
DBGrid,DBNavigator,DBText,DBEdit,DBMemo,DBImage,DBListBox,DBComboBox, 
DBCheckBox,DBRadioGroup,DBLookUpListBox,DBLoopUpComboBox 
Internet: 
WebDispatcher,PageProducer,DataSetTableProducer,DataSetPageProducer,SQLQueryTableProducer,TcpClient,TcpServer,UdpSocket 
Indy Client: 
IdTCPClient,IdUDPClient,IdDayTime,IdDNSResolver,IdEcho,IdFinger, IdFTP,IdGopher,IdHTTP,IdcmpClient,IdPOP3,IdNNTP,IdQOTD,IdRawClient, IdSMTP,IdSNTP, 
IdTelnet,IdTime 
Indy Server: 
IdTCPServer,IdUDPServer,IdChargeServer,IdDayTimeServer,IdDICTServer, IdDISCARDServer,IdECHOServer,IdFingerServer,IdIMAP4Server, IdHostNameServer,Id 
HTTPServer,IdIRCServer,IdMappedPortTCP,IdNNTPServer,IdQOTDServer,IdSampleServer,IdTelnetServer 
Indy Misc: 
InAntiFreeze,IdDateTimeStamp,IdLogDebug,IdMessage, IdThreadMgrDefault,IdThreadMgrPool,IdVCard,IdIMFDecoder, IdQuotedPrintableEncoder,IdBase64Encoder,IdBase64Decoder,IdUUEncoder, IdUUDecoder,IdXXEncoder,IdXXDecoder,IdCodeMD2,IdCordMD4 
  大部分的控件跟Delphi的空间是一样的,还有一部分是Delphi所不具有的,尤其是Indy类的控件。 
  启动kylix,系统自动创建一个空的工程。现在我们来做一个经典的Hello,World!程序。 
在窗体上添加一个Label控件,caption属性设为空,在添加一个Formcreate事件,代码如下: 

unit Unit1; 
interface 
uses 
SysUtils, Types, Classes, QGraphics, QControls, QForms, QDialogs; 
type 
TForm1 = class(TForm) 
Label1: TLabel; 
procedure FormCreate(Sender: TObject); 
private 
{ Private declarations } 
public 
{ Public declarations } 
end; 
var 
Form1: TForm1; 
implementation 
{$R *.xfm} 
procedure TForm1.FormCreate(Sender: TObject); 
begin 
Label1.Caption:=Hello,World!;{用户自己填写的代码} 
end; 
end. 
  Kylix同Delphi一样是基于Object Pascal,语句完全一样。 
  按F9或者在菜单项Run中选择Run或者在工具栏中点击快捷按钮运行程序。经过编译连接成功,窗体中显示"Hello,World!"。 
  Kylix就是Linux下的Delphi,如果你已经对Delphi相当熟悉,那么使用kylix这个快速开发工具肯定不成问题。如果你没用过Delphi,你也可以在短时间内学会使用它。有了kylix,Linux下的编程不再是一件困难的是。

Tags:Linux下的RAD
相关文章列表:
关于开源中文网 - 联系我们 - 广告服务 - 网站地图 - 版权声明