一.Qt程序的步骤windows
1. 编写源码app
a.建立目录,每个Qt工程都要有一个单独的目录函数
b.编写入口工具
QApplication app(argc,argv);//建立应用程序对象编码
QLabel lab("你要写的内容");//建立标签对象,此控件专门用来实现文字操作系统
lab.show();//显示标签,几乎全部的控件默认都是隐藏的设计
return app.exec();//把程序的运算交给Qt(监控事件,等待用户操做)3d
第一句和第四局的格式都是不变的;指针
2. 生成工程文件:qmake -project 生成目录名.pro(此文件能够被Qt创造器打开)code
3. 生成Makefile文件 qmake
4. 编译的时候语法很是严格,错误信息也不少
二.查阅帮助文档
1. 打开Qt帮助文档(assistant命令),使用索引,搜索找到对应的控件类或函数,宏,inherits:它的父类有哪些
2. 头文件,要注意使用此控件时要包含什么头文件,通常状况下是类名
3. Properties:具备保护属性的成员变量。
4. Public Functions: 具备公开属性的成员函数,部分功能函数可能在父类中,当须要的成员函数找不到时能够去父类中找
5. Reimplemented Public Functions:能够重写的成员函数
6. Public Slots:具备公开属性的槽函数,首先它具备某些功能的成员函数,但他能够与信号绑定,不光能够被信号调用,也能够被直接调用
7. Signals:他们是以函数形式存在的,但他们并不实现出来,能够用emit显示的触发
8. Reimplemented Protected Functions:能够重写的具备保护属性的成员函数
9. Detailed Description:类的使用注意事项
10. 其余:静态成员,静态成员函数,相关的宏
三.中文的处理
1. 因为历史缘由,地区,国家,文化的不一样,所使用的文字编码是不一样的。
英语国家: ASCII,128个字符
中国大陆:GBK2312(windows下经常使用的字符编码,每一个汉字2字节)
港台地区:BIG5
2. 统一字符编码
国际标准化组织设计出一套全世界通用的字符编码(Unicode):
UTF-2:双字节统一字节集
UTF-4:四字节统一字符集
UTF-8:用1~4字节表示一个Unicode字符
UTF-16:用2~4字节表示一个Unicode字符
UTF-32:用4字节表示一个Unicode字符
3. 内外有别:
内部编码:在Qt程序中全部的控件默认使用的是UTF-16编码
外部编码:操做系统所使用的编码(ubntu默认使用的是UTF-8编码)
4. 解决Qt乱码问题
Qt4.8默认的是UTF-16编码,所以必须手动设置后才能正确显示中文
Qt5.0以后的默认的是UTF-8编码
5. 在程序最开始时设计内部编码
QTextCodec* code = QTextCodec::codecForName("utf-8");
QTextCodec::setCodecForTr(code);
QTextCodec::setCodecForLocale(code);
QTextCodec::setCodecForCStrings(code);
四.信号与槽
信号:就是以函数形式存在的一种信号
槽:是一种特殊函数,若是不配合信号,能够看成普通函数使用
信号和槽函数必须常常链接才能协调工做
connect(负责发送信号的对象指针,信号函数签名:SIGNAL(函数名及参数),接受信号的对象指针,槽函数的函数签名: SLOT(函数名及参数))
五.自定义信号和槽
1. 在自定义的类中定义信号和槽函数必定要单独写一个头文件
2. 自定义的类必需要继承QObject类
3. 在类的开头必需要有宏:Q_OBJECT
4. 定义信号时前面要加关键字,信号以函数形式存在,但不须要实现
signals:
5. 定义槽函数时要加public slots:关键字,能够显示调用,也能够与信号链接,由信号触发调用
6. 信号由关键字emit触发, 能够带参数也能够不带 ,若是想让信号给槽函数发送数据,他们的参数格式必须同样
六.控件与容器
组成窗口界面的小工具叫控件,叫QLabel,QTextEdit,QPushButton
容器用来存放控件的类,
QMainwindow:主窗口容器,由标题栏,菜单栏,工具栏,状态栏组成