第3次课-Qt程序设计基础课件.ppt
《第3次课-Qt程序设计基础课件.ppt》由会员分享,可在线阅读,更多相关《第3次课-Qt程序设计基础课件.ppt(62页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第3次课次课 Qt开发程序入门开发程序入门第一部分:Qt基础程序设计基础主要内容主要内容Qt介绍Qt安装基于QT的Hello World示例程序Qt中主要类的介绍Qt的信号槽机制Qt中主要控件介绍3QT 介绍介绍Qt是Trolltech公司的标志性产品,是一个跨平台的C+图形用户界面(GUI)工具包Qt 应用程序接口与工具兼容于所有支持平台,让开发员们掌握一个应用程序接口,便可执行与平台非相关的应用开发与配置 Qt/Windows(Windows XP,2000,NT 4,Me/98)Qt/Mac(Mac OS X)Qt/X11(Linux,Solaris,HP-UX,IRIX,AIX等)Q
2、t对不同平台的专门API进行了专门的封装(文件处理,网络等)Trolltech公司由HaavardNord(执行总裁)和EirikChambe-Eng(总裁)于1994年在挪威创立的,2008年6月被NOKIA收购。通过直销,转售和战略合作伙伴等多种方式联合销售产品。Trolltech是一家拥有两个主线产品(Qt和Qtopia)的软件公司。Trolltech采取了成功的双重授权战略,为开发者提供商业和免费软件的授权使用。拥有遍布全球60个国家的4400个客户,其中包括Adobe,IBM,Sharp,Siemens及其他全球知名公司。QT的历史的历史1996 Sep 24 Qt1.01996 O
3、ct KDE 组织成立1998 Apr 05 Trolltech 的程序员在 5 天之内将 Netscape5.0 从 Motif 移植到 Qt 上1998 Apr 08 KDE Free Qt 基金会成立1998 Jul 12 KDE 1.0 发布1999 Jun 25 Qt 2.0 发布2000 Mar 20 嵌入式 Qt 发布2000 Sep 06 Qt 2.2 发布2000 Sep 04 Qt free edition 开始使用 GPL2004 Aug 4.02008 Aug 4.4发布,集成Webkit和PhononQT的产品的产品产品包括Qt、基于Framebuffer的Qt Em
4、bedded、快速开发工具Qt Designer、国际化工具Qt Linguist等部分。Qt/Embedded 是面向嵌入式系统的Qt版本,是Qt的嵌入式Linux窗口,是完整的自包含C+GUI(图形用户界面)和基于Linux的嵌入式平台开发工具。Qt/Embedded API可以用于多种开发项目。许多基于Qt的X Window程序可以非常方便地移植到嵌入式版本,适用于高端PDA等产品QT的产品的产品 Qtopia是为了Linux的PDA、智能电话和其他移动设备设计的一个全面并且可以用户化的应用程序平台和用户界面。它是第一个面向嵌入式Linux的全方位应用程序开发平台,它可以并且已经应用于众
5、多的基于Linux的PDA(个人数字助理)设备和智能电话。Qt特征一特征一面向对象Qt具有模块设计和注重软件构件或元素的可重用性的特点构件支持Qt提供信号signal和槽slot的概念,支持对象之间在彼此不知道对方的情况下合作,使得Qt适合构件编程友好的联机帮助Qt提供了大量的联机参考文件8Qt特征二特征二便利性Qt是跨平台的GUI工具包,对编程者隐藏了处理不同窗口系统时的潜在问题国际化Qt为本地化应用提供了完全的支持,所有用户界面文本都可以基于消息翻译表被翻译成各国语言9Qt特征三特征三丰富的API函数Qt为开发者提供了大量的函数可用户化外观Qt支持主题,基于Qt的应用程序能够在Window
6、s外观,Motif外观以及其他一些用户外观主题之间切换完整的组件工具Qt编程的基本模块叫做组件,Qt含有用来创建专业外观用户界面需要的所有组建10Motif Motif 最初是由 OSF(开放基金协会)开发的一个工业标准的 GUI(图形用户接口)。在开放系统(如 Linux)上,可以使用免费的 Motif。Motif 最先实现并运行于支持X窗口系统上,它是UNIX系统的主要用户接口。目前已经应用于超过200种硬件和软件平台。Motif GUI Toolkit推动了异种机和网络环境下的应用开发,各种机器包括便携机、PC、工作站、超级计算机都得益于 Motif 环境下的应用程序一致的行为和视感。用
7、 Motif GUI 开发的应用软件具有高度的可移植性、可交互性、以及可伸缩性。高性能的工具高性能的工具 对于库来讲,它的有效性远超过应用性。为了提高Qt库的有效性、快捷性,对其进行了优化,Qt能执行一些基本的任务,比如图形的润色,比一般的基于平台的代码要快。Qt是基于Xlib,而不依赖Motif工具包。优越的绘画功能优越的绘画功能 Qt的绘画工具QPainter类,在任意一个绘图设备上都可以润色图形。绘图设备包括组件、像素映射、图形文件和打印机,相同的代码可以用在4种不同类型的设备上。QPainter类支持复杂的同等系统的转换,很容易在所有平台上画旋转文本和像素映射。Xwindows的底层库
8、绘制绘制2D/3D2D/3D图形功能图形功能 Qt提供了QGLWidget类,使用该类能够绘制2D/3D图形。用QGLWidget就像用一个Qt组件一样方便。QtQt系统构造系统构造库库描述描述QtCoreQtCore核心非核心非GUIGUI功能功能QtGuiQtGui核心核心GUIGUI功能功能QtNetworkQtNetwork网络模块网络模块QtOpenGLQtOpenGLOpenGL OpenGL 模块模块QtSqlQtSqlSQL SQL 模块模块QtSvgQtSvgSVG SVG 透视图类透视图类QtXmlQtXmlXML XML 模块模块Qt3SupportQt3Support支
9、持支持Qt3Qt3的类的类QAxContainerQAxContainerActiveQtActiveQt 客户端的扩充客户端的扩充QAxServerQAxServerActiveQtActiveQt 服务器段的扩充服务器段的扩充QtAssistantQtAssistantQtQt助手的语言类助手的语言类QtDesignerQtDesignerQtQt设计器的扩展类设计器的扩展类QtUiToolsQtUiTools生成动态生成动态GUIGUI类类QtTestQtTest单元测试工具类单元测试工具类Qt的安装的安装Qt 下载 http:/ chmod u+x Qt_SDK_Lin32_offli
10、ne_v1_1_beta_en.run 2.运行安装文件 ./Qt_SDK_Lin32_offline_v1_1_beta_en.run 3.添加环境变量 将Qt安装目录下的bin目录加入到环境变量PATH中17Qt中主要的类介绍中主要的类介绍1.QObject QObject类是所有能够处理signal,slot和事件的Qt对象的基类,原型如下:QObject:QObject(Qobject*parent=0,const char*name=0)在上面的函数中,如果parent为0则构造一个无父的对象;如果对象是一个组件,则它会成为顶层窗口。18Qt中主要的类介绍中主要的类介绍2.QAppl
11、icationQApplication类负责GUI应用程序的控制流和主要的设置,它包括主事件循环体,负责处理和调度所有来自窗口系统和其他资源的事件处理应用程序的开始,结束以及会话管理QApplication是QObject类的子类19在在main.cpp中定义如下中定义如下:int main(int argc,char*argv)QApplication app(argc,argv);return app.exec();QApplicationQApplication包含在包含在main()main()函数的事件循环体中,对所函数的事件循环体中,对所有来自有来自WindowWindow系统和其
12、它源文件的事件进行处理和调度,系统和其它源文件的事件进行处理和调度,还包括处理应用程序的初始化和结束,并且提供会话管理还包括处理应用程序的初始化和结束,并且提供会话管理。在在QtQt应用程序中,不管有多少个窗口,应用程序中,不管有多少个窗口,QApplicationQApplication对对象只能有一个,而且必须在其他对象之前创建象只能有一个,而且必须在其他对象之前创建。QApplicationQApplication类中封装了很多函数,其中包括类中封装了很多函数,其中包括:系统设置:系统设置:setFontsetFont()()来设置字体来设置字体 事件处理:事件处理:sendEvents
13、endEvent()()用来发送事件用来发送事件 GUIGUI风格:风格:setStylessetStyles()()设置图形用户界面的风格设置图形用户界面的风格 颜色使用:颜色使用:colorSpeccolorSpec()()用来返回颜色文件用来返回颜色文件 文本处理:文本处理:translatetranslate()()用来处理文本信息用来处理文本信息 创建组件:创建组件:setmainWidgetsetmainWidget()()用来设置窗口的主组件用来设置窗口的主组件函数分组函数分组 系统设置 desktopSettingsAware()、setDesktopSettingsAware
14、()、cursorFlashTime()、setCursorFlashTime()、doubleClickInterval()、setDoubleClickInterval()、wheelScrollLines()、setWheelScrollLines()、palette()、setPalette()、font()、setFont()、fontMetrics()。事件处理 exec()、processEvents()、enter_loop()、exit_loop()、exit()、quit()。sendEvent()、postEvent()、sendPostedEvents()、remove
15、PostedEvents()、hasPendingEvents()、notify()、macEventFilter()、qwsEventFilter()、x11EventFilter()、x11ProcessEvent()、winEventFilter()。图形用户界面风格 style()、setStyle()、polish()。颜色使用 colorSpec()、setColorSpec()、qwsSetCustomColors()。文本处理 setDefaultCodec()、installTranslator()、removeTranslator()、translate()。窗口部件 ma
16、inWidget()、setMainWidget()、allWidgets()、topLevelWidgets()、desktop()、activePopupWidget()、activeModalWidget()、clipboard()、focusWidget()、winFocus()、activeWindow()、widgetAt()。高级光标处理 hasGlobalMouseTracking()、setGlobalMouseTracking()、overrideCursor()、setOverrideCursor()、restoreOverrideCursor()。X窗口系统同步 flu
17、shX()、syncX()。对话管理 isSessionRestored()、sessionId()、commitData()、saveState()。线程 lock()、unlock()、locked()、tryLock()、wakeUpGuiThread()。杂项 closeAllWindows()、startingUp()、closingDown()、type()。Qt中主要的类介绍中主要的类介绍3.Qwidget(窗体)Qt 拥有丰富的满足不同需求的窗体(按钮,滚动条等等),Qt 的窗体使用起来很灵活,为了满足特别的要求,它很容易就可以被子类化。窗体是Qwidget类或它子类的实例,客
18、户自己的窗体类需要从Qwidget它的子类继承。QWidget是所有用户接口对象的基类,继承了 QObject类的属性,是QObject类的子类22Software&Services Group 一个窗体可以包含任意数量的子窗体,子窗体可以一个窗体可以包含任意数量的子窗体,子窗体可以显示在父窗体的客户区,一个没父窗体的窗体我们称之显示在父窗体的客户区,一个没父窗体的窗体我们称之为顶级窗体(一个为顶级窗体(一个“窗口窗口”),一个窗体通常有一个边框),一个窗体通常有一个边框和标题栏作为装饰。和标题栏作为装饰。Qt 并未对一个窗体有什么限制,任并未对一个窗体有什么限制,任何类型的窗体可以是顶级窗体
19、,任何类型的窗体可以是何类型的窗体可以是顶级窗体,任何类型的窗体可以是别的窗体的子窗体。在父窗体显示区域的子窗体的位置别的窗体的子窗体。在父窗体显示区域的子窗体的位置可以通过布局管理自动的进行设置,也可以人为的指定。可以通过布局管理自动的进行设置,也可以人为的指定。当父窗体无效,隐藏或被删除后,它的子窗体都会进行当父窗体无效,隐藏或被删除后,它的子窗体都会进行同样的动作同样的动作。上下文上下文 函数函数 窗口函数 show()、hide()、raise()、lower()、close()。顶级窗口 caption()、setCaption()、icon()、setIcon()、iconText
20、()、setIconText()、isActiveWindow()、setActiveWindow()、showMinimized()、showMaximized()、showFullScreen()、showNormal()。窗口内容 update()、repaint()、erase()、scroll()、updateMask()。几何形状 pos()、size()、rect()、x()、y()、width()、height()、sizePolicy()、setSizePolicy()、sizeHint()、updateGeometry()、layout()、move()、resize()、
21、setGeometry()、frameGeometry()、geometry()、childrenRect()、adjustSize()、mapFromGlobal()、mapFromParent()、mapToGlobal()、mapToParent()、maximumSize()、minimumSize()、sizeIncrement()、setMaximumSize()、setMinimumSize()、setSizeIncrement()、setBaseSize()、setFixedSize()。模式 isVisible()、isVisibleTo()、visibleRect()、is
22、Minimized()、isDesktop()、isEnabled()、isEnabledTo()、isModal()、isPopup()、isTopLevel()、setEnabled()、hasMouseTracking()、setMouseTracking()、isUpdatesEnabled()、setUpdatesEnabled()。观感 style()、setStyle()、cursor()、setCursor()、font()、setFont()、palette()、setPalette()、backgroundMode()、setBackgroundMode()、colorGr
23、oup()、fontMetrics()、fontInfo()。键盘焦点函数 isFocusEnabled()、setFocusPolicy()、focusPolicy()、hasFocus()、setFocus()、clearFocus()、setTabOrder()、setFocusProxy()。鼠标和键盘捕获 grabMouse()、releaseMouse()、grabKeyboard()、releaseKeyboard()、mouseGrabber()、keyboardGrabber()。事件处理器 event()、mousePressEvent()、mouseReleaseEven
24、t()、mouseDoubleClickEvent()、mouseMoveEvent()、keyPressEvent()、keyReleaseEvent()、focusInEvent()、focusOutEvent()、wheelEvent()、enterEvent()、leaveEvent()、paintEvent()、moveEvent()、resizeEvent()、closeEvent()、dragEnterEvent()、dragMoveEvent()、dragLeaveEvent()、dropEvent()、childEvent()、showEvent()、hideEvent()、
25、customEvent()。变化处理器 enabledChange()、fontChange()、paletteChange()、styleChange()、windowActivationChange()。系统函数 parentWidget()、topLevelWidget()、reparent()、polish()、winId()、find()、metric()。这是什么的帮助 customWhatsThis()。内部核心函数 focusNextPrevChild()、wmapper()、clearWFlags()、getWFlags()、setWFlags()、testWFlags()。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Qt 程序设计 基础 课件
限制150内