- “.pro文件” 含一个项目解决方案的文件,包含当前QT版本、项目所有文件信息、调用的各模块组件
- QT += core gui 为基础组件,core是QT的内核,封装了C++库、图形库等,属于基础窗体;gui为一个固件,代表一个具体窗体(网页、按键等)。
- .pro.user 文件是当前QT编译的目录结构及环境变量,不同主机下编译的均不一样,会有差异,因此要是拿别人代码来用,首先删除该文件,QT重新加载时会生成新的该文件,符号我们使用的环境变量。
- 新建项目 Application->QT Widgets Application ,该类一般设计较简单的页面布局,即通过拖拉控件自动生成代码进行设定布局,而QT Quick Appliaction用于自定义布局,通过HTML等语言对页面进行设计,较复杂。
- 构建模式。debug为调试版(较大、包含调试组件等)、release为发布版(较小,不能含有打印语句)
不同平台的文件由构建工具决定,arm上运行的需用arm的构建工具。 - 编译过程 qt code ------(qmake)-----> c++ code ------(g++)------->a.out
由于经过两次的代码编译转换,当使用多进程时可能出现修改qt code时编译后不能及时更新c++ code生成a.out。可以通过右键项目名点击清除,删除所有中间编译的文件,在重新进行构建。 - linux下显卡接口:OPENGL 而win下的为
- 类名即为头文件名,可通过光标定位头文件按F1查看帮助文档,函数参数可用双引号占位,在光标定位到函数名,同样按F1查看帮助文档。
- 手动编译QT代码步骤:
qmake -project;
添加QT组件;
qmake;
make; - 将ui文件编译为头文件:uic编译工具
- QT信号与槽
产生者(按钮)->绑定connect->槽函数 - qt字符串常用操作
构造函数:[ * ]转换为QString
append:字符串拼接
arg:字符串格式化拼接
chop:字符串倒位剔除
contains:包含某个字符串
count:字符串统计
replace:查找替换
split:分隔字符串
toxxx:类型转换
QString::number:其他类型转换为QString类型
insert:插入指定位置
取字符串中的某一个字符:(QString(b.at(1)).toLatin1())[index]
字符对象数组:QStringList;对应行为insert向数组中插入字符对象 - 定时器的使用
#include
myTimer = new QTimer(this);
connect(myTimer, SIGNAL(timeout()), this, SLOT(doProgressTimeOut())); //绑定超时槽函数
行为:myTimer ->start(ms); myTimer ->stop(); - 进度条
progressBar->setValue(num); //num = 100 表示进度已满 - textEdit的操作
文本格式:设置setText();获取toPlainText()
html格式:设置setHtml();获取toHtml() - checkbox复选框
setCheckable, 每次点击将返回布尔类型true/false传递给槽函数,用于判断。 - radio button单选框
- toolbutton 设置菜单
#include
ui->toolButton->setIcon(QIcon(“F:/QT5.9/project/wife.jpg”));//设置按钮图片
ui->toolButton->setIconSize(QSize(100,100));//设置图片大小
QMenu *menu = new QMenu(this);//设置菜单栏
menu->addAction(QIcon(“F:/QT5.9/project/husband.jpg”), “选项名”, this, 处理函数);//选项信息
ui->toolButton->setMenu(menu);//设置 - 随机数种子:qsrand
#include
//设置随机数种子,以0时0分0秒达到现在的秒数为种子
qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
num = qrand()%100; //取两位数 - 窗体的操作:
show();//显示窗体
hide();//隐藏窗体 - 多窗体切换
若每次点击都分配内存则每次都会生成一个新子窗体。(新对象指针 = new 新对象(this))若分配内存时继承与父类this则子窗体在父窗体重叠显示,并且只能对子窗体进行操作,内存由父类释放。若全局,只能生成一个子窗体,子窗体中内容覆盖显示。
设置信号属性,signals: void 信号名(自定义参数);
发送信号:emit 信号名(自定义参数); //一般在按钮事件中使用
在目标窗体类中设置信号发送者对象指针并分配内存,绑定发送者对象所产生的信号处理函数
connect(发送者对象, SIGNAL(信号名(自定义参数)), this, SLOT(信号处理函数)); - 多窗体静态公共方法
使用注意:对于公共部分头文件,坚决不放入.h头文件中,应该放到.cpp文件,否则只能引入一次。
定义多一个C++文件,头文件声明静态属性及静态方法,静态属性初始化为0,静态方法中给静态属性分配内存并继承于某基类。在main函数中直接通过类名直接调用静态方法分配内存。在main中的子函数体中均可使用类名加静态对象进行操作。
C++文件:
static 基类 *静态属性对象;
基类 *作用域::静态属性对象指针 = NULL;//初始化
main:
静态属性对象指针 = new 基类();
main的子函数体:
类名::静态属性对象->行为(); - gif图的显示(label控件):
QMovie *movie = new QMovie(“gif文件路径”);//生成对象
movie->start();//开始播放
ui->label_2->setMovie(movie);//设置播放文件
ui->label_2->setScaledContents(true);//设置缩放内容
QT基础知识1
最新推荐文章于 2023-01-24 20:55:14 发布