网站大量收购独家精品文档,联系QQ:2885784924

qt入门培训.ppt

  1. 1、本文档共110页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 标准用户界面可能略显无趣。有时候人想添加一些颜色,有时候希望高亮用户界面的一部分。 为此,Qt带有样式表(style sheet)支持。这些是受启发自网页的层叠样式表(css)的。 它们可以用于把大部分的用户界面修改成你的喜好。 待续 * 向指定部件添加样式的最简单方法是在设计器中右击部件。它把你带到设计器的样式编辑器,那里你可以使用下拉菜单来创建新的样式定义。 待续 * 如果你希望不单单为一个部件或窗体设定样式,你可以对整个应用程序应用一个样式表。 它不可读,除非你依稀熟悉css的概念。 使用选择器去选择类,或特定的对象。 修改属性诸如边缘,背景,字体,边距等等。 你可以使用渐变和图片。使用设计器你可以生动地设计出渐变并随之把它们剪切并粘帖到应用程序样式表中。 待续 * * tr():QObject中定义的静态函数,所有继承QObject的类可以直接使用,其它类需要使用QObject::tr(); tr()的作用:标记出需要翻译的字符串,提供给lupdate工具提取。 * QObject类是Qt必不可少的 它是Qt中大多数“活跃”类的基类,包括所有部件(图片只显示了源自QObject的一个子集,它也显示那些子类自身也被其他类继承) QObject实现了造就Qt的许多特性,比如: 信号 槽 属性 简化存储管理 * QObject是许多Qt类的基类,但有一些例外。 图形视图工具不是QObjects,因为它们已被设计得很精瘦(它们成千上万,所以每字节都很重要)。 QString,QList,QChar,全都代表变量,因此不能为QObject(待续)。 * 那么,为何QChar不能为QObject ?因为QObject是单独的! 这表示你不可以写obj1 = obj2,复制不是合法操作。 为什么? QObject有名字,例如addButton, deleteButton等等(来自第一课的演示)。 你怎么复制它?你不想有两个addButton? QObject是层次结构的。你怎么复制上下文?你要把它们放在同级?叶级?根级? QObject可以是互连的(add调用一个槽) 你怎么复制它?你想复制连接吗? 减少头文件的依赖性 ????? 把具体的数据成员都放到cpp文件中去,这样,在需要修改数据成员的时候,只需要改cpp文件而不需要头文件,这样就可以避免一次因为头文件的修改而导致所有包含了这个文件的文件全部重新编译一次,尤其是当这个头文件是非常底层的头文件和项目非常庞大的时候,优势明显。 ????? 同时,也减少了这个头文件对其它头文件的依赖性。可以把只在数据成员中需要用到的在cpp文件中include一次就可以,在头文件中就可以尽可能的减少include语句 ??? * 增强类的封装性 ????? 这种方法增强了类的封装性,无法再直接存取类成员变量,而必须写相应的 get/set 成员函数来做这些事情。 ????? 关于这个问题,仁者见仁,智者见智,每个人都有不同的观点。有些人就是喜欢把类成员变量都定义成public的,在使用的时候方便。只是我个人不喜欢这种方法,当项目变得很大的时候,有非常多的人一起在做这个项目的时候,自己所写的代码处于底层有非常多的人需要使用(#include)的时候,这个方法的弊端就充分的体现出来了。 在Qt4.6中有较大的更改,但出发点大体一致,主要在于使用了宏。 实现元对象系统的基础。 moc 分析C++源文件,如果它发现在一个头文件(header file)中包含Q_OBJECT 宏定义,然后动态的生成另外一个C++源文件,这个新的源文件包含 Q_OBJECT 的实现代码,这个新的 C++ 源文件也会被编译、链接到这个类的二进制代码中去,因为它也是这个类的完整的一部分。通常,这个新的C++ 源文件会在以前的C++ 源文件名前面加上 moc_ 作为新文件的文件名 。 元数据:关于对象自身的数据。 这使到可以在Qt添加自省,让实例可以询问一个类有什么类函数。 QObject::className:在运行期间返回一个对象的类名,它不需要本地C++编译器的RTTI(run-time type information)支持; QObject::inherits() : ????? 它用来判断生成一个对象类是不是从一个特定的类继承出来,当然,这必须是在QObject类的直接或者间接派生类当中 * 向C++开发者提供元数据的同时,Qt仍然是100%基于C++。不涉及其他任何语言。 相反,moc,元对象编译器,会解释C++代码并生成更多的C++代码。 图中显示了一个普通的C++生成过程:头文件被包含,源代码被编译,对象文件被链接,而最终结果是可执行代码。(甚至

文档评论(0)

资料 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档