- 1、本文档共59页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 Qt图形界面应用程序开发 6.1 Qt简介 6.2 Qt4 Designer的应用 6.3 Qt4与数据库 6.4 Qt/Embedded 6.1 Qt简介 6.1.1 Qt的介绍 6.1.2 Qt中主要的类 6.1.3 信号和槽 6.1.4 Qt的帮助文档 6.1.5 Qt4的特点和优势 6.1.6 Qt4的安装与配置 6.1.7 Qt4程序结构及示例 6.1.1 Qt的简介 Qt是挪威Trolltech公司出品的一个跨平台的C++图形用户界面库。 Trolltech公司目前开发两种产品: 一种是跨平台的图形界面设计平台,即Qt。 一种是提供给嵌入式系统的应用程序开发平台,可以应用到PDA,手机等手持设备上,即Qtopia,是基于FrameBuffer的Qt/Embedded。 Trolltech的双重授权模式 Trolltech公司提供两种授权模式,一种用于商业性质的授权,一种用于免费的开源授权 6.1.1 Qt的简介 Qt 同 X Window 上的Motif,Openwin,GTK 等图形界面库,和Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西,但是 Qt 具有很多优点。 (1)Qt有优良的跨平台性,可支持的操作系统有。 (2)Unix、Linux、Solaris、SunOS等X11平台; (3)Windows 95、Windows 98、WindowsNT 4.0、Windows 2000、Windows XP; (4)Mac OSX、HP-UX、QNX、FressBSD等; (5)MIPS、ARM、StrongARM、Motorola 68000、PowerPC和XScale等支持FrameBuffer的嵌入式处理器上。 Qt特征(一) 面向对象 Qt具有模块设计和注重软件构件或元素的可重用性的特点 构件支持 Qt提供信号(signal)和插槽(slot)概念,并支持对象之间在彼此不知道对方信息的情况下进行合作,这使得Qt非常适合于真正的构件编程 友好的联机帮助 Qt提供了大量的联机参考文档,有超文本HTML方式,也有Unix帮助页man手册页和补充说明。对于初学者,其中的指南将一步步介绍如何进行Qt编程 Qt特征(二) 便利性 由于Qt是一种跨平台的GUI工具包,它对编程者隐藏了在处理不同窗口系统时潜在的问题,Qt定义了一些类来隐藏在不同操作系统上不同处理方式下的细节问题 国际化 Qt为本地化应用提供了完全的支持,所有用户界面文本都可以基于消息翻译表被翻译成各国语言,Qt还支持双字节16bit国际字符标准 Qt特征(三) 丰富的API函数 Qt为专业应用提供了大量的函数,在Qt的API中含有大约250个C++类,大多数的类都是GUI专有的 可用户化外观 Qt支持主题,基于Qt的应用程序能够在Windows外观、Motif外观,以及其它一些用户化外观主题之间切换 完整的一套组件工具 Qt编程的基本模块称之为组件,组件是用户界面的组成部分,Qt含有用来创建专业外观的用户界面所需要的所有组件 6.1.2 Qt中主要的类 QObject QObject类是所有能够处理signal、slot和事件的Qt对象的基类,原形如下: QObject::QObject ( QObject?*?parent =0,const?char?*?name = 0 ) 在上面的函数中如果parent为0则构造一个无父的对象,如果对象是一个组件,则它就会成为顶层的窗口。 QObject类(一) class Mandelbrot:public QObject { Q_OBJECT //需要使用signal和slot public : Mandelbrot(QObect *parent=0, const char *name); …… public slots: void start(); signals: void done(); private slots: void calculate(); private: QTimer timer; …… }; QObject类(二) //构造初始化一个Mandelbrot对象 Mandelbrot::Mandelbrot(QObject *parent=0, const char *name) :QObject(parent, name) { connect(timer,SIGNAL(timeout()),SLOT(calculate())); …… { 6.1.2 Qt中主要的类 2. QApplic
文档评论(0)