实例介绍
QT5入门指导书,只有一百多页,短小精悍。适合初学者,更适合qt4到qt5的过度者。
学习之路 绘制设备 贪吃蛇游戏() 贪吃蛇游戏() 贪吃蛇游戏() 贪吃蛇游戏() 文件 二进制文件读写 文本文件读写 存储容器 遍历容器 隐式数据共享 架构 学习之路 序 上面曾经有过这么一个系列,具体是的入门教程。当时强调过,那些文章大致是根 据《 》编写的。时过境迁,现在回头看看,已经 过去了整整三年。如果你仔细看下那篇系列文章就会发现,发表时间竟然是 年月 日;而今天是 年月日。或者是冥冥之中的感觉,竟然选择了同一个时间。 现在,按照年前做过的计划,我会来履行我的承诺,重新修订《学习之路》。不过,豆子计 划将其取名为《学习之路》,或者就当作是版本吧! 从网上的反应来看,这个系列的文章获得了很多读者的认可。时问已经过去三年,的发展也 有了翻天覆地的变化。如果不受出售事件的影响, 即将在 年月发布。而现在, 最新代码库里面已经有 。这意味着, 的特性己经确定,不会冉有大的改变。所以, 我觉得,我已经可以着手进行一次修订。 本次修订的原则是,结构上大致保持前一版本的顺序不变,包括基本知识的介绍、常用组 件的介绍、常用技术的介绍等;内容上将结合与两个部分。在可以预见的未来, 的程序,无论从旧代码的维护,还是新的程序的出现,都不会立刻退出历史舞台。 也并 不像 的升级那样的激烈,因此,我觉得有必要同时介绍这两个版本。当然,我并 不确定这种同时会不会一直持续到系列的最末,因为也有可能以一种摧枯拉朽之势,将 扫出历史舞台。这一切尚未可知。鉴于此,豆子才不将本系列命名为《学习之路》, 而是以第二版称呼。 另外,对于上一版本,豆子还是很内疚的。因为并不是一个完整的介绍,的很多优秀特性, 比如 比如数据库,比如网络,都没有进行介绍。这)要是因为当时接触也并不是很 多,很多特性没有使用过,即便抄书写出来,也会觉得心里没底。现在豆子对了解更多 所以,在这次修订中,豆了将竭尽全力将一些用到的特性介绍下 至于本系列的定位,豆子主张将其定位于入门教程。不过,如果可能的话,豆子希望能够在其中 穿插些有关实现的相关内容。这部分内容肯定不会是基础的,比如信号槽的实现等。不 过,对于这一点豆子也不敢肯定,毕竟要接触到实现层面上的东西,总要花费一定时间和精力的 这次修订,没有了《 这本书作为提纲,一切都将按照自己的 思路来。豆了将尽量跟随这本书的顺序,同时希望能够按照的思路,按照模块来介绍 当然,作为修订版,次修订的着重点在于,的内容将追随进行介绍。同前文 样,本系列也会参考《 书,不过鉴于木书的某些自认为 不合适的组织(比如以一个过大的项目作为示例),本版更多会直接参考文档。很多原理 性内容,可能会直接来源于文档,所以,感兴趣的朋友建议直接馡阅文档,以文裆原文为准 学习之路 说了这么多,总之就是,尽量完成一篇相对高质量的教程。如果有任何建议或者意见,欢迎给昱 子留言。 以此,是为序。 简介 是一个著名的应用稈序框架。你并不能说它只是一个库,因为十分庞大 并不仅仅是组件。使用,在一定程度上你获得的是一个一站式的解决方案:不再需 要研究,不再需要的 不冉需婆釗处去找解析、连接数据库、访问內 络的各种第三方库,因为自己内置了这些技术。 是一个垮艹台的框架。垮平合通常有三种实现策略: 映射:映射是说,界面库使用同一套,将其映射到不同的底层平台 上面。大体相当于将不同平台的提取公共部分。比如说,将 平台上的 按钮控件和 上的按钮组件都取名为 当你使用 时,如果在 平台上,则编译成按钮控件;如果在 上,则编译成按钮组件。这 么做的好处是,所有组件鄱是原始平台白有的,外观和原生平台一致;缺点是,编写 库代码的时候需要大量工作用」适配不同半台,并且,只能提取相冋部分的 比 的文本框自带拼写检测,但是 上面没有,则不能提供该功能。 这种策的典型代表是 。这也是一个标准的 库,和 样庞人。 它的语法看上去和类似,有大量的宏。据说,一个程序员可以很容易的 转换到 上面来 模拟:前面提到,映射会缺失不同平台的特定功能,而模拟则是 解决这一问题。不同平台的有差异,将使用工只厍自己的代码用于模拟出来。按 照前面的例了, 上的文本框有拼写检测,但是 的没有。那么,工 具库自己提供一个拼写检测算法,让 的文本框也有相同的功能 模拟 的典型代表是 一个 上面的 模拟器。它将人部分 在 上面模拟了出来,让 可以通过 运行 程序。由 此可以看出,模拟最大优点是,应用程序无需重新编译,即可运行到特定平台上。 另外一个例子是微软提供的 ,这个开发库将屏蔽掉不同显卡硬件所提供的具 体功能。使用这个厍,你无需担心硬件之间的差异,如果有的显卡没有提供该种功能, 会使用软件的方式加以实现。(关于举例,可以参考文木一段着彩的讨论。) 模拟:仟何平台都提供了图形绘制函数,例如画点、画线、画面等。有些工 只厍利用这些基本函数,在不同绘制出自己的组件,这就是模拟 模拟的 工作量无疑是很大的,因为需要使用最基本的绘图函数将所有组件画出来;并且这种 绘制很难保证和原生组件一模一样。但是,这一代价带来的优势是,可以很方便的修 改组件的外观只要修改组件绘制函数即可。很多跨平台的库都是使用的这种 学习之路 策略,例如 (这是 语言的图形界面库。使用语言很优雅地实现了面 向对象程序设计。不过,这也同样带釆了一个问题使用大量的类型转换的宏来模 拟多态,并且它的函数名一般都比较长,使用下划线分割单词,看上去和 如出 并不是模拟的原生界面,而有它自己的风格,所以有时候就会和操作系 统的界面格格不入。) 以及我们的 和 一样,也是一个标准的 库。但是它的语法类似于的 十 分清晰,而且使用信号槽( )机制,让程序看起来很明白这也是很多人优先选择 的一个很重要的原因。不过,所谓成也萧何,败也萧何。这砷机制虽然很清楚,但是它所带来 的后果是你需要使用的 对程序进行预处理,才能够再使用 者 行正常的编译,并且信号槽的调用要比普通的函数调用慢大约一个数量级(文档中说明该 数据,但尚未有官方说明)。的界面也不是原生风格的,尽管使用 机制十 分巧妙地模拟了原生昦面。另外值得一提的是,不仅仅能够运行在桌面环境中,还可以运行 在嵌入式平台以及手机平台。 第一版于 年由 奇趣科技)发布。后来在 年 斥资亿 美元收购 ,将应用于 程序开发。 年月日 将以 万欧元的价格出售给 伴随着 直有两种授权协议:商业授权以及开源授权。在的早期版本,商业授权包含 些开源授权不提供的组件,但是在近期版本则不存在这个问题。以往人们对的开源授权 多有诟病。早期版木的使用与不兼容的协议授权,这直接导致了 的 戕争(由于 使用协议发布,协议具有传染性,作为 桌面环境的却 是基于与不兼容的开发,这就不遵守协议)。不过,现在的开源版本使用 的是 以及协议。这意味着,你可以将作为一个库连接到一个闭溟软件里面。 可以说,协议的争议已经不存在了 想要学习开发,首先要搭建开发环境。好在现在搭建开发环境还是比较简单的 我们可以到官方网站找到最新版本的在 页面,可以看到有几个版本的 等等。它们分别是 :包含了库以及的开发工具( 等工具),是一套完整 的开发环境。当然,这个的体积也是最大的( 平台大约 其它平台大 约)。如果仅仅为开发,建议选择这一项下载安装。安装方法很简单,同普 通程序没有什么区别。所需注意的是,安裝过程中可能能够提供选择是杏安装源代码 是否安装 编译器( ),这个就按照需要进行选择即可。另外值得说 学习之路 明的是, 通常北单独的版本要旧一些。比如现在正式版是 但是 的最新版 中包含的是 仅包含库。如果您已经安装了开发环境,为了升级一下 中提供的厍版本,就可以安装这一个。安装过之后,应该需要在中配置安 装路径,以使找到最新版本的(如果不是覆盖安装的话) 基于构建的一个轻量级,现在最新版是,还是比较好 用的,建议使用 进行开发。当然,如果你已经习惯了 这样的工 具,可以在贞面最下方找到相应的很多朋友希望阅读代以提高自己的 开发水平。当然,的经典代码是,不过这个项目不大适合初学者阅读。此时 我们就可以选择阅读 的代码,它的代码还是比较清晰的。 当我们安装完成发环境之后,就可以使用 进行开发。在本系列中,豆了会 直使用这个进行讲解。至于编译器,豆子一般会使用 或者。为了编译的 程序,你应该使用 以上的版本,这意味着,如果你是使用 自带的 是 不能编译 的程序的(因为这个自带的版木是),你应该升级 为以上版 本 至此,我们已经冇了的完整开发环境。如果你想要开发,由于现在(年月) 还处于测试阶段,并没有提供二进制库,所以我们需要使用自己获取的源代码 自己编译(一般需要几个小时时间)。豆子非常不建议在 上:编译 因为可能会 出很多问题。如果你想尝试,可以参考这里。豆子提一句,在 上编译 需要安 装(并且要安装 模块)、 和,并且需要找到彼此路径。相比而 上面就会简单很多。豆子建议,如果你想在 上尝试,可以考虑安装 个虚拟机,使用 平台:或者自己试着直接在 本地编译。豆子的环境是使用 的 已经提供了 二进制版本,免去 了编译的过程。基于此,本文的版本将在 台上化用 进行测试; 版本将在 上使 进行测试。在未来宫方推什 y的二进制 版本,也不拼除在 上面测试代码 在 中,我们可以在菜单栏的工具选项构建和运行的版本和工具链这两个选 项卡中配置 所使用的版本和编译器。这或许是最重要的步骤,包括添加新的 版本以及以后的切换编译器或者升级等 下面尝试开发第一个项目 在 中新建一个工程: 文件编辑()构建(B)调试D)工具 D新建文件或工程…Ct 打开文件或工程 Ctrl+o 用打开文件 最近访问的文件 最使用的项目 Sessions 学习之路 点击这个新建文件或工程,在左侧选择项目 中间选择 应用,然后点击选 择 选挥一个模板 DEsktop Templates 项目QGui应用 建一个泉面q+应用,包含一个基于Q设计师 Applications 4 Qt quirk App iration( Built-in flement单主面体 Libraries 4 Ct Quick App icafion (from Existing Q1|预选一个可用桌面版本用于编程序 其他项目 Qt4控制台应用 Supported Platforms: Desktop Non-Qt Project 日HM5应用 Import Pr oject 文件和 C++ 要 选择C)联消 在弹出的对话框中填写名称、创建路径等信息: QtGu应用 项目介绍和位置 命位置 目标 本向寻将健一个t4U应用目,应用程序认继手自 4AppLIcation并且包含一个空白的南体 俏 名称 Helloforld 危路径:E:\[t □设为默认的工程路径 学习之路 点击下一步,选择该工程的编译器。这里我们只选择 调试即可(在以后的项目中,根 据自己的需要选择。) 的含义是影子构建,即将构建生成的文件不放在源代码 文件夹下。这样可以最大地保持源代码文件夹的整沾。 @t Gui应用 目标设置 置 Nt trea tir可以为工程■l1置如下目标 日标 再桌面 详情▲ 匚总 Create build< onfi durations:手动设置 五 hadow build □qt4a1 Eor Desktop-w国t调式 Eor eskt ep- Nav21tsK 941fkM)-N10偏!5发布tr220_s_ Qt1.1 for Dctp-m(m面15 r Deiktop-_Hir】K览 qt48.1 for Desktop-" nGh ( Qt sD1发布16Deap-ira_tsx「览 下一步()取 点击下一步,可以选择生成的主窗口文件。不过在我们的简单示例中是不需要这么复杂的窗口 的,因此我们尽可能简单地选择,将创建界面的选择去除 gGui应用 类信息 应置 日标 指定你要建的源码文件基本类信息 命悟 匚总 共名C): Maindindow 呈共): 也nY、nd 头交件0D:重 ainvindor,h 原又件区 mainlander,sFp 界面:画 界面文件0): uirwindow.ti 下=步职 学习之路 终」到了最后一步。这里是在询问我们是否添加版本控制。对」我们的小项目当然是不需婁的, 所以选择无,然后点击完成即可: gcui应用 项目管理 应置 目标 为当前目漂一个子目需》 咩悟 汇总 添加至版本控制系(): E;gt品G11Q1曰; 沿m,明p 品 FundS,cpp 画五d-h He11ckr1dE口 完就)职 可以看到, 帮助我们在 项日文件夹下生成了四个文件 和 。文件就是工程文件( 由 处理,生成 程序所需要的 里面就是一个函数,作 为应用程序的入口函数;其他两个文件就是先前我们曾经指定的文件名的文件。 我们将 修改如下: 击 左侧下面的绿色三角按钮即可运行(这里一共有三个按钮,从上到下分别是运 行、调试和杓建)。如果没有错误的话,就会看到运行结果: 【实例截图】
【核心代码】
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论