一、Qt简介
1、Qt是什么
图形用户应用程序框架,是对底层应用编程接口进行面向对象的封装。
是一套基于C++语言的类库,专注但不局限于用户界面的开发,也可以进行系统调用、网络通信、数据库、2D/3D的图像处理。
特点:跨平台,支持Linux、windows、MacOS、iOS、android等系统。
2、为选择Qt
基于C++语言,简单易用
优良的跨平特性,个人计算机、工控、嵌入式的界面占用主导地位。
二、Qt环境与工具
1、工具
Qt助手:Qt的参考手册,涉及Qt中的每个类,是学习Qt的必备手册,在终端可以使用assistant命令打开。
Qt设计器:对于程序员来说是最纯粹的方式就使用代码来实现程序的图形界面,但这种方式费时费力,而使用Qt设计器可以以绘图的方式制作图形界面(所见即所得)。
Qt界面编译器:负责把Qt设计器制作出的界面文件.ui 翻译成C++代码。
Qt构造器:对源文件、头文件、界面文件进行解析生成项目脚本。
qmake -project 根据当前目录下的文件生成项目脚本.pro
qmake 根据项目脚本生成Makefile脚本
Qt创造器:它是由Qt助手+Qt设计器+Qt界面编译器+Qt构造器+文本编辑器+C++编译器+Qt库组合而成的一个集成开发环境。
2、头文件和库
Qt安装好之后会在/usr/include/目录下创建一个qt4目录,里面存储着Qt所有的头文件。
共享库存储在/usr/lib/i386-linux-gnu/qt4目录下。
静态库需要下载Qt源码进行手动编译。
三、第一个Qt程序
#include <QtGui/QApplication> Qt界面程序必备的头文件
#include <QLabel> 标签控件
int main ( int argc, char * argv[ ] )
{
QApplication app ( argc, argv) ;
QLabel* lab = new QLabel;
lab- > show ( ) ;
return app. exec ( ) ;
}
构建项目:
qmake -project 生成pro脚本
qmake 生成Makefile脚本
make 编译项目
四、Qt创造器的使用方法
1、创建项目
Qt控制项目 -> Qt Gui应用 -> 输入项目名称(不要有中文) -> 选择项目路径 -> 选择主界面 -> 完成。
2、编译运行项目
点击绿色按钮,编译运行项目,编译运行之前要先保存代码。
Ctrl+s+r 保存所有文件,再编译运行。
3、常用快捷键
Alt+0 显示/隐藏侧边栏
Ctrl+e 松开后按3 垂直分割当前窗口
Ctrl+e 松开后按2 水平分割当前窗口
Ctrl+e 松开后按1 删除当前的分割窗口
Ctrl+e 松开后按0 删除所有的分割窗口
Ctrl+b 编译项目
Ctrl+s+b 保存所有文件后,再编译
Ctrl+r 编译并运行
Ctrl+s+r 保存所有文件,再编译运行
Ctrl+/ 注释或取消注释
Ctrl+i 把代码格式规范化
Ctrl+Shift+r 批量修改变量名,按Enter确认
Ctrl+f 搜索、替换代码
Ctrl+单击 定义与声明之间的切换,Shift+f2具有同样的功能。
Alt+u 大写转换成小写
Alt+Shift+u 小写转换成大写
F4 头文件与源文件之间的切换
F1 打开该类的帮助手册
五、帮助手册
Inherits:该类继承了哪些父类
Public Types:访问属性是public的成员
Properties:访问属性是protected的成员
Public Functions:访问属性是public的成员函数
Public Slots:访问属性是public的槽函数,也可以当作普通的成员函数调用,主要用来与信号连接。
Signals:信号,可以与其它类的槽函数进行连接。
注意:它不是函数,可以使用emit发送。
Static Public Member:访问属性是public的静态成员函数,这种函数与类对象无法,一般都用于管理对象的公共资源。
Protected Functions:访问属性是protected的成员函数
Macros:与本类相关的宏
Property Documentation:对本类的详细说明,使用方法,调用的上下文要注意的事项,有些类会有示例代码。
六、中文乱码
注意:Qt的4.8版默认的不是utf-8,所以可能会出现中文乱码。
1、导入字符编码头文件 QTextCodec
2、在main函数中
// 创建一个字符编码对象
QTextCodec* codec = QTextCodec::codecForName("utf-8");
// 告诉Qt当前系统所使用的字符编码
QTextCodec::setCodecForCStrings(codec);
// 告诉Qt程序内部中所使用字符编码
QTextCodec::setCodecForCStrings(codec);
// 告诉Qt程序外部中所使用的字符编码
QTextCodec::setCodecForTr(codec);
七、窗口容器
1、QMainWindow主窗口容器
成员有:标题栏,菜单栏,工具条,状态栏,中央显示区域。
2、QDialog 对话框容器
可以管理多个不同的交互式控制。
3、QWidget
是纯粹的窗口容器,只有一块显示区域,它是QMainWindwo和QDialog的父类。
常用的设置有:
resize(w,h) 设置窗口的宽和高
move(x,y) 设置窗口的位置
当容器对象创建完成后,把容器对象的地址给控件,控件就会显存容器上。
八、Qt中的字符串和数据输出
QString类 具备string类的所有功能
字符串字面值也可以直接转换成QString
QString也可以与string进行转换 toStdString。
建议在Qt中使用QString而不是string和char*。
数据输出:
是为了测试效果,打印提示信息、警告、错误等,这类数据不适合显示在界面上。
C/C++中的printf/puts/cout可以继续使用。
在Qt中建议使用qDebug,默认的使用方式与pritnf一样,添加QDebug头文件后,可以像cout一样使用。