Qt中使用的C++知识和技能-你必须要了解的
如果你不确定在使用Qt编程时自己所掌握的C++知识是否够用,这一节的内容会帮到你。这里给出了Qt自身以及在使用Qt进行编程时涉及到的C++知识,因此,通过阅读本节,你会了解你是否缺少一些C++技能。
如果你想对这里提到的C++特性做进一步的了解,我们推荐你看Gregory Satir和Doug Brown撰写的《C++:The Core Language》,该书由O’Reilly出版。这本书重点讲解了C++语言最为重要的部分,并且涵盖了本节提到的所有内容。
- 对象和类
当然的,Qt中使用到了类-Qt是一个类库。你需要知道某个类的成员函数的用法。而且,你需要掌握怎样写你自己的类,以及怎样继承一个已经存在的类,从而产生一个新的类。不过,你无需成为擅长类的等级设计的高手。对于GUI 程序设计,在这里我们会提供足够丰富的信息来帮助你构建自己的知识体系。
- 存取方法
Qt中大量的使用了存取方法,它们用来得到或者设置类的私有变量的值。保存方法通常以set...这样的型式出现(例如,setText()),而获取方法则不带有任何前缀(甚至没有get-,例如,text())。在Qt中,这是一个基本的东西(惯例,译者注);没有复杂的东西在里面。
- 多态和虚函数
Qt中使用虚函数来通知你的(程序中的)对象,某些低级的事件(就像鼠标点击、重绘操作那样的事件)发生了,所以你必须要适应这些函数(的用法)。不像其他的工具包或者类库,Qt主要使用创新的信号/槽机制而不是虚函数来作为对象间通信的主要的方法。这个特性对于Qt而言至关重要,所以在本书的后面章节中将会介绍它。
- 继承
毫无疑问,Qt中用到了继承,但是其中最重要的部分是建立在单继承之上的。多继承很少用到-实际上,它的使用少到你很可能从来没有遇到过它。如果你对那个“虚拟继承”的含义不理解的话,放心吧:Qt中根本就没有用到它。
- 运算符重载
Qt重载了一些运算符,但通常这些运算符只是(在背后)工作而已。举例来说,你可以把一个QString对象赋给某个函数,期望得到一个const char*,这是由于一个强制转换运算符的介入以把你的QString对象转换为一个字符指针。
- 模板类
你不能使用一个不理解模板或者没有完全实现模板的编译器来编译Qt。如果你不想使用集合类,在你自己的代码中使用模板就不是必需的。但是模板是非常有用的,所以你还是要尽量的熟悉基本的模板的使用。并且,这个学习起来并不复杂。
- bool数据类型
Qt中经常用到bool数据(对于C++而言,是较新的类型)类型。不幸的是,一些老旧的编译器不支持bool数据类型,并且也不能识别true和false这两个关键字。这时候,你可以转而使用Qt提供的TRUE和FALSE宏来替代。在本书中,我们使用true和false,但如果你手头使用的是那些老旧的编译器,你需要总是使用TRUE和FALSE代替它们。
- 其他特性
Qt没有使用那些尚未被所有编译器所支持的以及新的C++特性,如名字空间、运行时类型识别(RTTI),新的类型绑定等等。Qt也不使用标准模板库(STL),但你可以在自己的Qt程序中使用它。
转自:http://blog.csdn.net/qter_wd007/article/details/6737470
Qt中使用的C++知识和技能-你必须要了解的的更多相关文章
- TTF字体基本知识及其在QT中的应用
字体类型 以Windows为例,有4种字体技术: Raster:光栅型,就是用位图来绘制字形(glyph),每个字都以位图形式保存 Vector:矢量型,就是用一系列直线的结束点来表示字形 TrueT ...
- Qt 中如何捕获窗口停用和激活的消息
最近一直在用Qt做一个简单的俄罗斯方块的游戏,由于要实现一个暂停游戏的功能,就是当鼠标移出正在运行的游戏,点击电脑桌面上的其他位置时,这个时候游戏暂停.在这里把实现过程简单的记录一下,作为一个学习笔记 ...
- Qt中调用PolarSSL库(一)
最近一直在学习SSL相关的知识,也是先了解理论相关的知识,主要是SSL相关的基本概念和连接建立过程,主要是基于PolarSSL开源库进行学习.学习完了之后就希望能给有所运用,就想用Qt写一个简单的程序 ...
- Qt中添加OpenCV库
配置在Qt中的OpenCV,看了很多“教程”,最终成功.记一下过程. 本机配置: window7 32位系统: qt-opensource-windows-x86-mingw492-5.5.1: Op ...
- QT中QMainWindow、QWidget、QDialog
QT中QMainWindow.QWidget.QDialog 简述 在分享所有基础知识之前,很有必要在这里介绍下常用的窗口-QWidget.QDialog.QMainWindow. 熟悉Qt的同学都应 ...
- QT中PRO文件写法的详细介绍
学习Qt时,发现有些知识看了不经常用就忘了,以下是书本上写的一些关于qmake的相关知识,自己看后,打算把一些经常用到的记下来,整理整理. Qt程序一般使用Qt提供的qmake工具来编译. qmake ...
- Qt事件系统之一:Qt中的事件处理与传递
一.简介 在Qt中,事件作为一个对象,继承自 QEvent 类,常见的有键盘事件 QKeyEvent.鼠标事件 QMouseEvent 和定时器事件 QTimerEvent 等,与 QEvent 类的 ...
- DevOps 工程师成长日记系列一:必备知识与技能组合
原文地址:https://medium.com/@devfire/how-to-become-a-devops-engineer-in-six-months-or-less-366097df7737 ...
- [转帖]java必备的开发知识和技能
java必备的开发知识和技能 https://blog.csdn.net/qq_34405062/article/details/89389646 学习一下java 其实上学那会儿学的 早就过时加落伍 ...
随机推荐
- Adventures in deep learning
转:https://github.com/GKalliatakis/Adventures-in-deep-learning Adventures in deep learning State-of-t ...
- 玩转Bootstrap(JS插件篇)-第1章 模态弹出框 :1-3 模态弹出框
模态弹出框(Modals) 这一小节我们先来讲解一个“模态弹出框”,插件的源文件:modal.js. 右侧代码编辑器(30行)就是单独引入 bootstrap 中发布出的“modal.js”文件. 样 ...
- java多线程14 :wait()和notify()/notifyAll()
轮询 线程本身是操作系统中独立的个体,但是线程与线程之间不是独立的个体,因为它们彼此之间要相互通信和协作. 想像一个场景,A线程做int型变量i的累加操作,B线程等待i到了10000就打印出i,怎么处 ...
- lsblk命令
lsblk命令用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息.块设备有硬盘,闪存盘,cd-ROM等等.lsblk命令包含在util-linux-ng包中,现 ...
- refiling失败报错Invalid function: org-preserve-local-variables
refiling失败报错Invalid function: org-preserve-local-variables,原因: elc,不太清楚 解决办法: 删除org??目录下的elc文件 https ...
- Delphi实现RGB色环的代码绘制(XE10.2+WIN764)
相关资料: http://blog.csdn.net/tokimemo/article/details/18702689 http://www.myexception.cn/delphi/215402 ...
- 基于jquery下拉列表树插件代码
分享一款基于jquery下拉列表树插件代码.这是一款实用的jquery 树形下拉框 下拉树代码下载.效果图如下: 在线预览 源码下载 实现的代码. html代码: <table width= ...
- NLTK和jieba这两个python的自然语言包(HMM,rnn,sigmoid
HMM(Hidden Markov Model,隐马尔可夫模型) CRF(Conditional Random Field,条件随机场), RNN深度学习算法(Recurrent Neural Net ...
- WPF System.InvalidCastException: 无法将类型为“System.Windows.Media.Color”的对象强制转换为类型“System.Windows.Media.Brush”。
场景:添加ComboBox样式,界面卡死,日志异常文件如下: -- ::, | ERROR | System.InvalidCastException: 无法将类型为“System.Windows.M ...
- Redis Cluster集群搭建<原>
一.环境配置 一台window 7上安装虚拟机,虚拟机中安装的是centos系统. 二.目标 Redis集群搭建的方式有多种,根据集群逻辑的位置,大致可以分为三大类:基于客户端分片的Redis ...