01-Qt简介概论.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
01-Qt简介概论

* TempConverter类声明。 在可以添加信号和槽之前,我们需要QObject父对象和Q_OBJECT。 Setter是槽。 每一个温度的改变都有对应信号。 为避免无限循环我们必须有一个“当前”温度。在这个例子中我们已经决定将其控制为摄氏度。 鉴于我们由始至终使用整数值,所以从温度转换的角度看不会非常准确。 待续 * 看槽实现, setTempCelsius槽包含了循环锁,因为“当前”温度控制为摄氏度。然后它会更新内部状态并发射两个信号。 注意华氏度信号的参数由getter函数取回,实现从C到F的转换。 设定华氏度的槽转换温度(从F到C)并使用设定摄氏度函数。 待续 * 构成应用程序的窗口有四个部件组成(摄氏度和华氏度的表盘 + LCD)以及一个TempConverter对象。 表盘之间的连接是建立来通过温度器转换对象的,而LCD则直接由表盘驱动。 待续 * 下一张幻灯片将会显示一个信号怎么通过系统传播。 一切都开始于一个用户事件 – celsiusDial被移动。 这使到它发射valueChanged信号。 待续 * valueChanged信号被连接到celsiusLcd的显示以及温度转换器的setTempCelsius。 display的调用仅仅改版LCD所显示的值,而setTempCelsius的调用则改变温度转换器的值。 待续 * 改变温度转换器的温度导致两个信号被发射: tempCelsiusChanged和tempFahrenheitChanged。 待续 * tempCelsiusChanged信号被连接到celsiusDial的setValue槽。这个槽检测到表盘的值没有改变 – 于是就此终止。 tempFahrenheitChanged信号连接到fahrenheitDial的setValue,导致表盘的值改变。 待续 * 因为表盘的值发生了改变,所以它发射了携带新值的valueChanged信号 待续 * 这导致fahrenheitLcd被更新(通过display槽) setTempFahrenheit槽也被调用。这个槽检测到温度没有改变并就此停止。 待续 * 在这一点上,所有信号已经通过系统和TempConverter对象传播,而所有的部件再次同步。 注意槽是如何承担责任以停止通过系统的无限传播的。 同时注意选择用于“当前”温度的刻度的重要性。一个导致摄氏度和华氏度数值匹配不当的舍入错误就可能导致系统前后不定地摆动。 * * Google Earth可运行在多个平台,提供繁体中文界面。新版基于Qt4 * Maya是比较流行的三维动画软件,目前采用的是Qt3.3.8 * Qt程序的main函数结构 * 可以和html很多集成。 * QObject携带了元数据,那是关于对象自身的数据。 这使到可以在Qt添加自省,让实例可以询问一个类有什么类函数。 每一个QObject都有一个元对象,它可以用metaObject函数检索到。 元对象了解类,类名,基类,属性,类函数,槽和信号。 待续 * 向C++开发者提供元数据的同时,Qt仍然是100%基于C++。不涉及其他任何语言。 相反,moc,元对象编译器,会解释C++代码并生成更多的C++代码。 图中显示了一个普通的C++生成过程:头文件被包含,源代码被编译,对象文件被链接,而最终结果是可执行代码。(甚至连库文件都或多或少是可执行代码,所以此过程在任何情况下都是正确的。) 待续 * 于是,Qt向生成过程添加一个步骤。Moc解释类的声明并生成实现特定元对象的C++代码。 注意可以让moc直接处理源代码文件,然后把结果包含进同一个源代码文件中。但是那只能用在特殊情况下,即是继承自QObject的类只在一个单独文件中被使用。 这全部由QtCreator处理,所以你不需要担忧。对于所有其他生成环境也都有解决方法去处理这个步骤(命令行生成, Visual Studio,Eclipse,Xcode,等等) 待续 * Moc在你的类声明中寻找什么? 首先,直接或间接地继承QObject。如果你正继承多个类,你的QObject(派生)必须首先出现。你不能继承QObject两次(无论直接还是间接)。 然后你需要把Q_OBJECT宏放到你的类声明中,在私有块。按照惯例和历史局限性,它通常放在开头。 然后你可以通过特殊宏添加类信息,以及更多。比如,本例中键“author”被给予值“John Doe”。 Qt也添加了一些特殊关键字(从编译器的视点,仅仅是宏),这些将在后面讨论。 * 此处,幻灯片将走过QObject和元数据可用的不同特性。 第一个例子,继承关键字让你检查一个类是否继承,即,is-a,类。一个

文档评论(0)

shuwkb + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档