第十章GUI编程1.ppt_第1页
第十章GUI编程1.ppt_第2页
第十章GUI编程1.ppt_第3页
第十章GUI编程1.ppt_第4页
第十章GUI编程1.ppt_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一 Qt概述1 关于QtQt是Trolltech公司的一个产品 Qt是一个多平台的C 图形用户界面应用程序框架 它提供给应用程序开发者建立图形用户界面应用程序所需的所有功能 Qt是完全面向对象的 它很容易扩展 并且允许真正的组件编程 自从1996年早些时候 Qt进入商业领域 它已经成为全世界范围内数千种成功的应用程序的基础 Qt也是流行的Linux桌面环境KDE的基础 KDE是所有主要的Linux发行版的一个标准组件 Qt支持下述平台 Qt支持下述平台 NT4 0 ME 和2000 Unix X11 Linux SunSolaris HP UX CompaqTru64UNIX IBMAIX SGIIRIX和其它很多X11平台Macintosh MacOSX Embedded 有帧缓冲 framebuffer 支持的Linux平台 Embedded 有帧缓冲 framebuffer 支持的Linux平台 2 Qt版本信息Qt被按不同的版本发行 Qt企业版和Qt专业版 提供给商业软件开发 它们提供传统商业软件发行版并且提供免费升级和技术支持服务 企业版比专业版多一些扩展模块 Qt自由版 是Qt仅仅为了开发自由和开放源码软件提供的Unix X11版本 在Q公共许可证和GNU通用公共许可证下 它是免费的 Qt 嵌入式自由版 是Qt为了开发自由软件提供的嵌入式版本 在GNU通用公共许可证下 它是免费的 3 Qt的组成Qt提供了一组范围相当广泛的C 类库 并包含了几种命令行和图形界面的工具 有效地使用这些工具可以加速开发过程 QtDesigner Qt设计器 用来可视化地设计应用程序界面 QtLinguist Qt语言学家 用来翻译应用程序 以此提供对多种语言的支持 Qmake 使用此工具可以由简单的 与平台无关的工程文件来生成编译所需的Makefile QtAssistant 关于Qt的帮助文件 类似于MSDN 可以快速地发现你所需要的帮助 moc 元对象编译器 uic 用户界面编译器 在程序编译时被自动调用 通过ui h文件生成应用程序界面 qembed 转换数据 比如 将图片转换为C 代码 开始学习Qt1 Hello Qt 我们以一个非常简单的Qt程序开始Qt的学习 我们首先一行行的分析代码 然后我们将会看到怎样编译和运行这个程序 1 include2 include3intmain intargc char argv 4 5QApplicationapp argc argv 6QLabel label newQLabel HelloQt 7label show 8returnapp exec 9 第1行和第2行包含了两个类的定义 QApplication和QLabel 对于每一个Qt的类 都会有一个同名的头文件 头文件里包含了这个类的定义 因此 你如果在程序中使用了一个类的对象 那么在程序中就必须包括这个头文件 第3行是程序的入口 几乎在使用Qt的所有情况下 main 函数只需要在把控制权转交给Qt库之前执行一些初始化 然后Qt库通过事件来向程序告知用户的行为 argc是命令行变量的数量 argv是命令行变量的数组 这是一个C C 特征 它不是Qt专有的 无论如何Qt需要处理这些变量第5行定义了一个QApplication对象App QApplication管理了各种各样的应用程序的广泛资源 比如默认的字体和光标 App的创建需要argc和argv是因为Qt支持一些自己的命令行参数 在每一个使用Qt的应用程序中都必须使用一个QApplication对象 并且在任何Qt的窗口系统部件被使用之前创建此对象是必须的 App在这里被创建并且处理后面的命令行变量 比如在X窗口下的 display 请注意 所有被Qt识别的命令行参数都会从argv中被移除 并且argc也因此而减少 第6行创建了一个QLabel窗口部件 widget 用来显示 Hello Qt 在Qt和Unix的术语中 一个窗口部件就是用户界面中一个可见的元素 它相当于Windows术语中的 容器 加上 控制器 按钮 Button 菜单 menu 滚动条 scrollbars 和框架 frame 都是窗口部件的例子 窗口部件可以包含其它的窗口部件 例如 一个应用程序界面通常就是一个包含了QMenuBar 一些QToolBar 一个QStatusBar和其它的一些部件的窗口 绝大多数应用程序使用一个QMainWindow或者一个QDialog作为程序界面 但是Qt允许任何窗口部件成为窗口 在这个例子中 QLabel窗口部件就是作为应用程序主窗口的 第7行使我们创建的QLabel可见 当窗口部件被创建的时候 它总是隐藏的 必须调用show 来使它可见 通过这个特点我们可以在显示这些窗口部件之前定制它们 这样就不会出现闪烁的情况 第8行就是main 将控制权交给Qt 在这里 程序进入了事件循环 事件循环是一种stand by的模式 程序会等待用户的动作 比如按下鼠标或者是键盘 用户的动作将会产生程序可以做出反应的事件 也被称为 消息 程序对这些事件的反应通常是执行一个或几个函数 为了简单起见 我们没有在main 函数的结尾处调用delete来删除QLabel对象 这种内存泄露是无害的 因为像这样的小程序 在结束时操作系统将会释放程序占用的内存堆 下面我们来编译这个程序 建立一个名为hello的目录 在目录下建立一个名为hello cpp的c 源文件 将上面的代码写入文件中 运行 开始 程序 QtbyTrolltech QtCommandPrompt 在命令行模式下 切换目录到hello下 然后输入命令 qmake project 这个命令将产生一个依赖于工作平台的工程文件 hello pro 再输入命令 qmakehello pro 这个命令通过工程文件产生一个可以在特定工作平台上使用的makefile 最后输入命令 make来产生应用程序 运行这个程序 可以得到如下的程序界面 Qt也支持XML 我们可以把程序的第6行替换成下面的语句 QLabel label newQLabel Hello Qt 重新编译程序 我们发现界面拥有了简单的HTML风格 如下图 2 调用退出第二个例子展示了如何使应用程序对用户的动作进行响应 这个应用程序包括了一个按钮 用户可以点击这个按钮来退出程序 程序代码与上一个程序非常相似 不同之处在于我们使用了一个QPushButton来代替QLabel作为我们的主窗口 并且我们将一个用户动作 点击一个按钮 和一些程序代码连接起来 1 include2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论