初步认识qt组件,了解基本原理和函数执行过程。
主函数文件main.cpp
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
QAoolication a(argc,argv) 使用框架 并且创建一个类
Wiget w 为窗口类
w.show() 为展示窗口
与普通c语言不同的是 return 的不再是0 而是 a.exec() 意味着无限调用程序
头文件widget.h
#include <QWidget> // 最大基类
#include <QProcess> // 启动新的进程必须引用
#include <QMessageBox> // 弹窗头文件
#include <QProcess> // 启动新的进程必须引用
// 所有槽函数必须加上solts关键字
private slots:
void on_commitButton_clicked();
void on_cancelButton_clicked(); // 取消按钮函数
头文件最重要的就是slots关键字
需要在slots关键字下定义处理函数
类函数文件widget.cpp
// 生成的槽函数
void Widget::on_commitButton_clicked()
{
//获取lineedit数据
//用ui这个类去获取文本框(cmdLineEdit)中的值 值的类型是(QString)
QString program = ui->cmdLineEdit->text();
// 创建process对象
QProcess *myProcess = new QProcess(this);
myProcess->start(program); // program是要依据文本框的内容所改变的
}
可以使用ui右键创建槽函数,也可以自己写
需要先引入process头文件 后创建process对象
再使用process中start方法选中内容
这里的program需要在process对象之前创建,获取文本框的内容
text()返回的数据类型 是QString 与 STL中string类似
用宏来写信号
connect(ui->cmdLineEdit,SIGNAL(returnPressed()),this,SLOT(on_commitButton_clicked()));
信号需要四个参数
****链接信号与槽 谁发出信号 发出什么信号 谁处理信号 怎么处理 ****
这里第一种方法使用宏来编写
1.文本框发出信号
2.signal(文本框(QLineEdit)发出的信号类型需要在文档中查询到信号名为(returnPressed))
3.this指向当前构造函数处理
4.slot是头文件中处理槽函数必须使用的关键字(处理方式为调用已写好的点击事件)
用取地址来写信号
connect(ui->cancelButton,&QPushButton::clicked,this,&Widget::on_cancelButton_clicked);
用取地址(&)的方式调用 按钮的内置函数
用取地址的方法调用则不用再加()
处理简单的信息且不想调用函数可以使用弹窗
connect(ui->browseButton,&QPushButton::clicked,[this]()
{
QMessageBox::information(this,"弹窗信息","点击浏览");
});
首先需要引入QMessage头文件,随后在调用其中的information函数
调用QMessageBox类中的方法(弹窗基于哪个类上面,标题名字,提示文字)