QT的学习方法
- 具备C++的编程能力
- 阅读大量的实例
- 模块化开发
- 结合操作系统
学习QT的方法
- 首先掌握C++语言
- 对图形操作界面的部件有直观的认识
- 学会查找文档
- 多多使用官方提供实例代码
- 注意代码书写的格式(匈牙利,驼峰法)
学习内容:
- QT介绍
- QT的应用范围
- QT部件Widget
- 信号和槽
- 对象树关系
- 布局管理
- 标准对话框
- 自定义对话框
- 文件和目录
- 级联样式表
- 软件美工
- 事件和绘图
- 二维图像
- 网络
- 拖放
- Webkit web 开发
- 桌面服务和桌面部件
- 搭建android开发平台
- 进程
- 线程
- 创建插件
- 跨平台
- 逆向工程
- 软件安全
- 单元测试
- 模型与视图
- 脚本
- 音频多媒体
实例
- 开发跨平台的文本编辑器
- 开发一个windows的运行程序
- 屏幕截图程序
- 基于MySQL的酒店信息管理
- 基于套接字的局域网聊天程序
- QML元素实例
- 基于多窗口的程序案例
- 开发简易浏览器
1.QT介绍
91年奇趣公司开发的跨平台C++图形用户界面应用程序开发框架,他既可以开发GUI程序也能开发非GUI程序,比如控制台工具和服务器;QT是面向对象语言,易于拓展,并且允许组件开发;08年奇趣被诺基亚收购;
1999年 QT2.0发布
2000年 嵌入式QT发布
……
2.QT的应用范围
- 汽车信息娱乐
- 航天航空
- 家庭影院
- 视频电话
- 医疗
- 石油天然气
- 视觉效果
- MID&Nerbooks
3.QT部件Widget
新建工程:
QT的主要部件:
1.下选框(combo Box) | 2.字体选择(font Combox) |
---|---|
![img](file:///C:/Users/WANGQI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg) | ![img](file:///C:/Users/WANGQI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg) |
3.容器(Group Box) | 4.分栏(tab Widget) |
![img](file:///C:/Users/WANGQI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg) | ![img](file:///C:/Users/WANGQI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg) |
5.停靠窗口(Dock Widget) | 6.数字设置(spain Box) |
![img](file:///C:/Users/WANGQI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg) | ![img](file:///C:/Users/WANGQI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg) |
---|---|
4.设置UI界面固定大小
由于防止界面的放大以及缩小导致界面的整体不美观,所以采用固定大小的方式;在程序中加入两行代码:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
setMaximumSize(565,176);
setMinimumSize(565,176);
}
5.系统和槽
1.手动建立连接:
connect(btnOK,SIGNAL(clicked()),this,SLOT(accept()));
其中btnOK是UI界面上对应控件的名称,clicked()是事件,this是当前程序,accept()是对应执行的程序;
2.自动建立信号与槽的关联:
点击UI界面的控件,右击”转到槽“即可;
6.启动一个额外的程序
启动WINDOW进程的CLASS类
#include <QProcess>
帮助实例
QObject *parent;
...
QString program = "./path/to/Qt/examples/widgets/analogclock";
QStringList arguments;
arguments << "-style" << "fusion";
QProcess *myProcess = new QProcess(parent);
myProcess->start(program, arguments);
去除文本空格“ ”"/t"
QString str = " lots\t of\nwhitespace\r\n ";
str = str.trimmed();
// str == "lots\t of\nwhitespace"
实际使用:
QProcess *process =new QProcess;
QString startProject =ui->cmdlineEdit->text();
process->start(startProgram.trimmed());
7.清除文本,关闭窗口
ui->cmdLineEdit->clear();
this->close();
8.下选框的使用
if(ui->comboBox->currentIndex()==0)
9.UIC的使用
找到此段代码的setupUi并右击,选择F2
ui->setupUi(this);
10.新建菜单
略
11.UI调试
使用类
#include <QtDebug>
示例
qDebug() << "Brush:" << myQBrush << "Other value:" << i;
实际使用
qDebug() << "not modified"
12.警告提示
使用类