一、Qt中的C++11标准
Qt 5 中开启C++11特性,启用新标准,在.pro文件里加一行:
CONFIG+=c++11
MSVC 编译器默认开启 C++11 特性,GCC(g++命令)则需要自己添加选项 -std=c++0x ,上面 CXXFLAGS 就是为 GCC 编译器(g++命令)添加 -std=c++0x 选项。
二、Explicit Linking 和 Implicit Linking
Explicit Linking 即显式链接,Implicit Linking 即隐式链接,这两种都是动态链接库的使用方式。
动态链接库通常都有导出函数列表,用老告知其他可执行程序可以使用它的哪些函数;
可执行程序使用这些导出函数有两种方式:
- 一是在运行时主动加载动态库的函数,Linux里比如用dllopen函数打开并加载动态库;Windows里一般有用LoadLibrary打开并加载动态库,只有当程序执行到这些函数时,其参数里的动态库才会被加载,这就是显式链接;(显式链接时在运行时加载动态库,其程序启动时并不检查这些动态库是否存在)
- 二就是最为常见的隐式链接,所有的编译环境魔偶人都是采用隐式链接的方式使用动态库的;隐式链接会在链接生成可执行程序时就确定依赖关系,在该程序启动时,操作系统自动会检查它的依赖的动态库,并一一加载到该程序的内存空间;比如VC编译环境,连接时使用动态库对应的.lib文件,在.exe程序允许前系统会检查依赖的.dll,若找不到就会出现下面的对话框:
三、自动生成的ui_xxx.ui文件
这个文件是对xxx.ui文件编译之后,根据窗体上的组件及其属性、信号与槽的关联等自动生成的一个类的定义文件,而xxx.ui是通过UI设计器可视化设计生成的,so 对ui_xxx.ui文件手工修改没有什么意义,所有涉及界面的修改都应该直接在UI设计器里进行
四、常用快捷键
- F2:跟踪光标下的符号,若是变量,可以跟踪到变量声明的地方;若是函数体或函数声明,可在两者间切换
- F4:在同名的头文件和源文件之间切换
- Shift+F2:在函数的声明(函数原型)和定义(函数实现) 之间切换;为函数原型在cpp文件里生成函数体
- Ctrl+Shift+R:对光标处的符号更改名称,这将替换掉所有用到这个符号的地方
- Ctrl+I:未选择的文件自动进行缩进
…