1、Qt的环境与工具
一、工具
a、Qt助手:里面详细说明了Qt框架中的每个类、函数、宏等
是开发的必备工具,在终端可使用assistant开启
b、构建器:负责把源码文件、头文件构建成一个Qt工程,而且生成Makefile文件
c、Qt设计器:以画图的方式来进行设计界面,设计出的界面是没有功能的,若是须要完成相应的功能,还要与代码相结合(界面文件能够转换成源码)
d、Qt界面编译器:负责把以.ui结尾的界面文件,生成对应的代码
e、Qt创造器:(Qt creator 集成开发环境:集合了编辑器、助手、构建器、设计器、编译器)ubuntu
二、头文件和库
Qt框架的头文件存储在/usr/include/qt4,通常以Qt开头结尾无.h
Qt框架中的共享库存在/usr/lib/qt4/imports目录中,通常以libQt开头windows
2、第一个Qt程序
一、编写源码
a、建立目录,每一个Qt工程都要有一个单独的目录
b、编写入口
QApplicaton app(argc,argv);
QLabel lab("hello world");
lab.show();
return app.exec();app
二、生成工程文件
qmake -project ->目录名.pro
此文件能够被Qt创造器打开
三、生成Makefile 文件
qmake->Makefile
四、编译
Qt程序在编译时语法检查很是严密,错误信息也不少框架
3、如何查阅文档
一、打开Qt帮助文档(assistant命令),使用索引、搜索找到对应的控件类、函数、宏,Inherits:它的父类有哪些
二、头文件,要注意使用此控件时要添加什么头文件,通常状况下是类名
三、Properties:具备保护属性的成员变量
四、Public Functions:具备公开属性的成员函数,部分功能函数可能在父类中,当须要找的功能函数找不到时,能够去父类中查找
五、Reimplemented Public Functions:能够重写的成员函数
六、Public Slots:具备公开属性的槽函数,首先它具备某些功能的成员函数,但它能够与信号绑定,不光能够被信号调用,也能够被直接调用
七、Signals:它们是以函数形式存在的,但它们并不实现出来,能够用emit显示的触发
八、Reimplemented Properties Functions:能够重写的具备保护属性的函数
九、Detailed Description:类的使用注意事项
十、其它:静态成员、静态成员函数、相关的宏编辑器
4、中文处理
一、不一样的字符编码:因为历史缘由、地区、国家、文化的不一样,所使用的文字编码方式是不一样的
英语国家:ASCII,128个字符
中国大陆:GBK23120(windows下经常使用的字符编码,每一个汉字2字节)
港台地区:BIG5
二、统一字符编码
国际标准化组织想设计出一套全世界通用的字符编码(Unicode):
UTF-2:双字节统一字节集
UTF-4:四字节统一字节集
UTF-8:用一到四字节表示一个Unicode字符
UTF-16:用二到四字节表示一个Unicode字符
UTF-32:用四字节表示一个Unicode字符
三、内外有别:
内部编码:Qt应用程序中全部的控件默认使用的是UTF-16编码
外部编码:操做系统所使用的编码(ubuntu默认使用的是UTF-8编码)函数
四、解决Qt乱码问题
Qt4.8默认的是UTF-16编码,所以必须手动设置后才能正确显示中文
Qt5.0以后默认的是UTF-8 编码
五、在程序最开始时设计内部编码
QTextCodec* code=QTextCodec::codecForName("utf-8");
QTextCodec::setCodecForTr(code);
QTextCodec::setCodecForLocale(code);
QTextCodec::setCodecForCStrings(code);
工具
5、信号与槽
信号:就是以函数形式存在的一种信号
槽:是一种特殊的函数,若是不配合信号,能够看成普通函数使用ui
信号和槽函数必须常常链接才能协同工做
connect(负责发送信号的对象指针
信号函数签名:SIGNAL(函数名及参数)
接收信号的对象指针:
槽函数的函数名签名:SLOT(函数名及参数)
)编码
6、自定义信号和槽
一、在自定义的类中定义信号和槽函数必定要单独写一个头文件
二、自定义的类必需要继承QObject类
三、在类的开头必需要有宏:Q_OBJECT
四、定义信号时前面要加关键字,信号以函数形式存在,但不须要实现
signals:
五、定义槽函数时要加public slots:关键字,能够显示调用,也能够与信号链接,由信号触发调用
六、信号由关键字emit 触发,能够带参数也能够不带
若是想让信号给槽发送数据,它们的参数格式必须同样操作系统
7、控件与容器 组成窗口界面的小工具叫控件,QLabel,QTextEdit,QPushButton 容器用来存放控件的类 QMainWindow:主窗口容器,由标题栏、菜单栏、工具栏、状态栏组成