一、Qt是什么
1、C++的一个框架,也是一款图形界面应用程序框架(GUI库)
{
包含500多个类,9000多个函数,并且被分成了多个模块
在C++基础上有了更高级的接口和机制
}
2、主要应用于桌面应用程序的开发
二、开发工具
1、Qt Creator
2、VS
3、其他
三、QT的优势(短平快–投资少、周期短、见效快、效益高)
1、跨平台,几乎支持所有的平台(Linux、Windows、Unix、Mac等),一次编码,随处编译
2、接口简单,容易上手
3、开发效率高,能够快速构建应用程序
4、很好的社区氛围,市场份额逐年上升
5、可以进行嵌入式开发
四、QT成功的案例
1、Linux桌面环境 KDE
2、WPS Office
3、Skype 聊天软件
4、VLC多媒体播放器
5、Google earth谷歌地球
6、VirtualBox虚拟机软件
7、AutoDesk
五、为什么要学习QT
1、市场上任何一款产品几乎都是带图形界面的,市场上很火的Android、IOS编程也是GUI app编程,所有的GUI编程都是差不多的,QT是跨平台的,通过Qt也可以编写出在Android、IOS平台上运行的程序
2、锻炼编程能力,GUI编程比后台更能够锻炼人,除了核心数据处理,还需要协调界面,同时懂得前端和后台编程,才能写出更好的程序
3、为了更好的使用C++,很多游戏、后台服务器框架都是用C++实现的,学习Qt框架能够为以后工作,打下一个很好的基础
六、学习Qt,应该学什么
1、学会帮助文档的使用F1
2、掌握Qt中常用的类,及其使用方法(函数为方法、对象为变量名)
七、QtCreator常用快捷键
1、帮助文档:F1
2、.h文件和.cpp文件切换:F4
3、编译并运行:Ctrl+R
4、函数声明和定义(函数调用和定义)切换:F2
5、代码注释取消注释:Ctrl+ /
6、查找替换关键字:Ctrl+ f
八、Qt命名规范
1、类名:单词首字母大写,单词和单词之间直接连接,无需连接字符
如:
MyClass,QPushButton
class MainWindow
{
};
2、函数名,变量名:第二个单词开始(不是从第一个单词开始),首字母大写,单词和单词之间直接连接,无需连接字符
如:
void setFlag();
QString getText();
bool isDraw;
3、Qt中内置的类型,头文件和类命名相同
如:
#include
QString str;
#include
QWidget w;
九、运算符
“::”我们称之为域运算符
1、A::B
它表示类A中的成员B
2、全局作用域符号,当全局变量在局部函数中与其中某个变量名重名,就可以用::来区分
3、void a::f()
它表示函数f()是类a的成员函数
十、QDebug的用法,表示打印信息
1、qDebug()<<“hello”<<123,这种用法必须包含头文件”#include“
2、不包含头文件,直接使用qDebug(),那就像C语言一样直接输出:
qDebug(“hello world!%s”,str);
3、可以自定义类添加qDebug()打印
4、消除qDebug()打印信息,在.pro文件里加上一条预定义:
DEFINES +=QT_NO_DEBUG_OUTPUT
十一、信号和槽
1、连接函数connect
例如:connect(信号的发送者,发送的具体信号,信号的接收者,信号的处理(槽))
人—————摩擦摩擦——————神灯——————出灯神
按钮—————点击———————窗口——————关闭窗口
信号槽的优点,松散耦合,信号发送端和接收端本身是有关系的,通过connect连接,将两端耦合在一起
2、连接函数的参数
参数1:信号的发送者
参数2:发送的信号(函数的地址)
参数3:信号的接收者
参数4:处理的槽函数(函数的地址)
3、“signals:”下信号的写法
自定义信号写到头文件里的signals下,它的返回值是void(即没有返回值),只需要声明,不需要实现,可以有参数,可以重载
4、槽函数的写法
早期的版本必须写到public slots:下,但是5.4版本以上就可以写到public : explicit Student(QObject *parent =0);下
另外它的返回值是void,需要声明,也需要实现,可以有参数,可以发生重载(即可以允许有多个槽函数)