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 其实上学那会儿学的 早就过时加落伍 ...
随机推荐
- Ubuntu 18.04 安装和常用软件安装
Ubuntu 18.04 安装 下载 Ubuntu 制作 U 盘启动盘 设置电脑为 U 盘启动 插入 U 盘,重启电脑 按照提示安装 Ubuntu 更新 NVIDIA 显卡和 Broadcom 无线网 ...
- Atitit 找人软福利建设 技术团队建设大概流程
Atitit 找人软福利建设 技术团队建设大概流程 火车公司有免费车座,餐馆有免费饭吃.. 软件公司嘛,就是软件资源,知识了...技术... 培训体系 大概的知识库体系..让他知道来到我们团队有着很高 ...
- Atitit 爬虫 node版 attilaxA
Atitit 爬虫 node版 attilax 1.1. 貌似不跟python压实,,java的webmagic压实,,什么爬虫框架也没有,只好自己写了. 查了百度三爷资料也没有.都是自己写.. 1. ...
- HTML5新特性之文件和二进制数据的操作
历史上,JavaScript无法处理二进制数据.如果一定要处理的话,只能使用charCodeAt()方法,一个个字节地从文字编码转成二进制数据,还有一种办法是将二进制数据转成Base64编码,再进行处 ...
- ssh以密钥的方式登录服务器时,只要有密钥可以登服务器,如果有密钥和公钥同时存在(在公钥没问题的情况下可以),但如果公钥有问题,就不能登录成功
在~/.ssh/下如果只有密钥或公私同时存在时,都可以成功登录服务器,但!!!!!!如果公钥有换成别的服务器的公钥时,是无法登录远程的服务器!!!!
- 关于casperjs的wait方法的执行顺序
var casper = require('casper').create({ viewportSize:{ width:1920, height:1080 } }); var url1 = 'htt ...
- mysql++ Query
mysqlpp:: Query类存储了Connection的指针,可以用它进行SQL语句的增删改查. 连上数据库后,使用mysqlpp::Connection::query()获取Query对象 Qu ...
- mysql 配置路径
1)关于配置文件路径 有时候,我发现虽然尝试修改了配置文件的一些变量,但是并没有生效.后来才发现原来是因为修改的文件并非MySQL服务器读取的配置文件. 如果不清楚MySQL当前使用的配置文件路径,可 ...
- jdango 部署之nginx+uwsgi
1,安装pip sudo apt-get install python-pip 2,利用 pip 安装 Django sudo pip install Django 3,检测Django是否安装成功 ...
- ffmpeg与H264编码指南
注:本文属于转载译文,原文地址:http://blog.csdn.net/vblittleboy/article/details/8982857. 英文地址:https://trac.ffmpeg.o ...