Qt嵌入式系统Qt图形界面应用程序开发-课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Qt嵌入式系统Qt图形界面应用程序开发-课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Qt 嵌入式 系统 图形界面 应用程序 开发 课件
- 资源描述:
-
1、Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-191大连东软信息学院大连东软信息学院 嵌入式系统导论课程组嵌入式系统导论课程组嵌入式系统嵌入式系统Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-192第6章 Qt图形界面应用程序开发 6.1 Qt简介 6.2 Qt4 Designer的应用 6.3 Qt4与数据库 6.4 Qt/EmbeddedNeusoft Institute of Informa
2、tion2022年7月19日星期二IT Education&Training2022-7-1936.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程序结构及示例Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-1946.1.1 Qt的简介Qt是挪威Trolltech公司出品的一个跨平台的C+图形用户界面库。Trolltech公司目前开发两种产品:一种
3、是跨平台的图形界面设计平台,即Qt。一种是提供给嵌入式系统的应用程序开发平台,可以应用到PDA,手机等手持设备上,即Qtopia,是基于FrameBuffer的Qt/Embedded。Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-195Trolltech的双重授权模式 Trolltech公司提供两种授权模式,一种用于商业性质的授权,一种用于免费的开源授权Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7
4、-1966.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、Powe
5、rPC和XScale等支持FrameBuffer的嵌入式处理器上。Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-197Qt特征(一)面向对象Qt具有模块设计和注重软件构件或元素的可重用性的特点 构件支持Qt提供信号(signal)和插槽(slot)概念,并支持对象之间在彼此不知道对方信息的情况下进行合作,这使得Qt非常适合于真正的构件编程 友好的联机帮助Qt提供了大量的联机参考文档,有超文本HTML方式,也有Unix帮助页man手册页和补充说明。对于初学者,其中的指南将一步步介绍如何进行Qt编程
6、Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-198Qt特征(二)便利性由于Qt是一种跨平台的GUI工具包,它对编程者隐藏了在处理不同窗口系统时潜在的问题,Qt定义了一些类来隐藏在不同操作系统上不同处理方式下的细节问题 国际化Qt为本地化应用提供了完全的支持,所有用户界面文本都可以基于消息翻译表被翻译成各国语言,Qt还支持双字节16bit国际字符标准 Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-
7、199Qt特征(三)丰富的API函数Qt为专业应用提供了大量的函数,在Qt的API中含有大约250个C+类,大多数的类都是GUI专有的 可用户化外观Qt支持主题,基于Qt的应用程序能够在Windows外观、Motif外观,以及其它一些用户化外观主题之间切换 完整的一套组件工具Qt编程的基本模块称之为组件,组件是用户界面的组成部分,Qt含有用来创建专业外观的用户界面所需要的所有组件Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-19106.1.2 Qt中主要的类QObjectQObject类是所有能
8、够处理signal、slot和事件的Qt对象的基类,原形如下:QObject:QObject(QObject*parent=0,const char*name=0)在上面的函数中如果parent为0则构造一个无父的对象,如果对象是一个组件,则它就会成为顶层的窗口。Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-1911QObject类(一)class Mandelbrot:public QObjectQ_OBJECT /需要使用需要使用signal和和slotpublic:Mandelbrot(Q
9、Obect*parent=0,const char*name);public slots:void start();signals:void done();private slots:void calculate();private:QTimer timer;;Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-1912QObject类(二)/构造初始化一个Mandelbrot对象Mandelbrot:Mandelbrot(QObject*parent=0,const char*name):QObje
10、ct(parent,name)connect(&timer,SIGNAL(timeout(),SLOT(calculate();Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-19136.1.2 Qt中主要的类2.QApplicationQApplication类负责GUI应用程序的控制流和主要的设置,它包括主事件循环体,负责处理和调度所有来自窗口系统和其他资源的事件处理应用程序的开始、结束以及会话管理。对于一个应用程序来说,建立此类的对象是必不可少的QApplication是QObject类的子
11、类Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-1914函数分组函数分组 系统设置 desktopSettingsAware()、setDesktopSettingsAware()、cursorFlashTime()、setCursorFlashTime()、doubleClickInterval()、setDoubleClickInterval()、wheelScrollLines()、setWheelScrollLines()、palette()、setPalette()、font()、se
12、tFont()、fontMetrics()。事件处理 exec()、processEvents()、enter_loop()、exit_loop()、exit()、quit()。sendEvent()、postEvent()、sendPostedEvents()、removePostedEvents()、hasPendingEvents()、notify()、macEventFilter()、qwsEventFilter()、x11EventFilter()、x11ProcessEvent()、winEventFilter()。图形用户界面风格 style()、setStyle()、polis
13、h()。颜色使用 colorSpec()、setColorSpec()、qwsSetCustomColors()。文本处理 setDefaultCodec()、installTranslator()、removeTranslator()、translate()。窗口部件 mainWidget()、setMainWidget()、allWidgets()、topLevelWidgets()、desktop()、activePopupWidget()、activeModalWidget()、clipboard()、focusWidget()、winFocus()、activeWindow()、wi
14、dgetAt()。高级光标处理 hasGlobalMouseTracking()、setGlobalMouseTracking()、overrideCursor()、setOverrideCursor()、restoreOverrideCursor()。X窗口系统同步 flushX()、syncX()。对话管理 isSessionRestored()、sessionId()、commitData()、saveState()。线程 lock()、unlock()、locked()、tryLock()、wakeUpGuiThread()。杂项 closeAllWindows()、startingU
15、p()、closingDown()、type()。Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-19156.1.2 Qt中主要的类3.QWidgetQWidget类是所有用户接口对象(组建)的基类,它继承了QObject类的属性组件是用户界面的单元组成部分,它接收鼠标、键盘和其它从窗口系统来的事件,并把它自己绘制在屏幕上QWidget类有很多成员函数,但一般不直接使用,而是通过子类继承来使用其函数功能。如,QPushButton、QlistBox等都是它的子类QWidget是QObject类的子
16、类Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-1916上下文上下文 函数函数 窗口函数 show()、hide()、raise()、lower()、close()。顶级窗口 caption()、setCaption()、icon()、setIcon()、iconText()、setIconText()、isActiveWindow()、setActiveWindow()、showMinimized()、showMaximized()、showFullScreen()、showNormal()。
17、窗口内容 update()、repaint()、erase()、scroll()、updateMask()。几何形状 pos()、size()、rect()、x()、y()、width()、height()、sizePolicy()、setSizePolicy()、sizeHint()、updateGeometry()、layout()、move()、resize()、setGeometry()、frameGeometry()、geometry()、childrenRect()、adjustSize()、mapFromGlobal()、mapFromParent()、mapToGlobal()
18、、mapToParent()、maximumSize()、minimumSize()、sizeIncrement()、setMaximumSize()、setMinimumSize()、setSizeIncrement()、setBaseSize()、setFixedSize()。模式 isVisible()、isVisibleTo()、visibleRect()、isMinimized()、isDesktop()、isEnabled()、isEnabledTo()、isModal()、isPopup()、isTopLevel()、setEnabled()、hasMouseTracking()
19、、setMouseTracking()、isUpdatesEnabled()、setUpdatesEnabled()。观感 style()、setStyle()、cursor()、setCursor()、font()、setFont()、palette()、setPalette()、backgroundMode()、setBackgroundMode()、colorGroup()、fontMetrics()、fontInfo()。键盘焦点函数 isFocusEnabled()、setFocusPolicy()、focusPolicy()、hasFocus()、setFocus()、clearF
20、ocus()、setTabOrder()、setFocusProxy()。鼠标和键盘捕获 grabMouse()、releaseMouse()、grabKeyboard()、releaseKeyboard()、mouseGrabber()、keyboardGrabber()。事件处理器 event()、mousePressEvent()、mouseReleaseEvent()、mouseDoubleClickEvent()、mouseMoveEvent()、keyPressEvent()、keyReleaseEvent()、focusInEvent()、focusOutEvent()、whee
21、lEvent()、enterEvent()、leaveEvent()、paintEvent()、moveEvent()、resizeEvent()、closeEvent()、dragEnterEvent()、dragMoveEvent()、dragLeaveEvent()、dropEvent()、childEvent()、showEvent()、hideEvent()、customEvent()。变化处理器 enabledChange()、fontChange()、paletteChange()、styleChange()、windowActivationChange()。系统函数 paren
22、tWidget()、topLevelWidget()、reparent()、polish()、winId()、find()、metric()。这是什么的帮助 customWhatsThis()。内部核心函数 focusNextPrevChild()、wmapper()、clearWFlags()、getWFlags()、setWFlags()、testWFlags()。Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-19176.1.3 信号和槽 信号和槽机制是Qt的一个主要特征,是Qt与其他工具包
23、最不相同的部分。在图形用户界面编程中,经常会出现窗口中的一个部件发生的变化会被通知给另一个部件,在Qt中采用信号和槽来实现对象部件之间的通信。Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-1918Signal和Slot的声明(一)在Qt程序设计中,凡是包含signal和slot的类中都要加上Q_OBJECT的定义,下面的例子给出了如何在一个类中定义signal和slot:class Student:public QObject Q_OBJECTpublic:Student()myMark=0;i
24、nt mark()const return myMark;public slots:void setMark(int newMark);signals:void markChanged(int newMark);private:int myMark;Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-1919Signal和Slot的声明(二)signal的发出一般在事件的处理函数中,利用emit发出signal,在下面的例子中在事件处理结束后发出signalvoid Student:setMark(i
25、nt newMark)if(newMark!=myMark)myMark=newMark;emit markChanged(myMark);Neusoft Institute of Information2022年7月19日星期二IT Education&Training2022-7-1920Signal和Slot的连接(一)在signal和slot声明以后,需要使用connect()函数将它们连接起来。connect()函数属于QObject类的成员函数,它能够连接signal和slot,也可以用来连接signal和signal函数原形如下:bool connect(const QObjec
展开阅读全文