自己跟着老师的课程一步步跟着写下来的,有需要的可以自取,有用的话还希望点一个小小的赞同哦~
QT快速入门 | 最简单最简洁的QT入门教程 | 嵌入式UI
信号与槽课程部分
run/widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QProcess> //如何使用可以查看最左栏的帮助手册,搜索框输入QProcess
#include <QMessageBox> //点击后出现一个子对话框
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT //宏定义,涉及信号与槽都需要加上这个宏定义
public:
Widget(QWidget *parent = nullptr);
~Widget();
private slots: //槽函数必须要加上slots
void on_commitButton_clicked();
void on_cancelButton_clicked();
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
run/widget.cpp
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
/* 连接信号与槽--connect(连接函数) */
//connect有4个参数:谁发出信号 发出什么信号 谁处理信号 怎么处理
connect(ui->cmdLineEdit,SIGNAL(returnPressed()),this, SLOT(on_commitButton_clicked())); //returnPressed()为回车信号;this为调用合格类来处理,调用的类中函数写在SLOT中。
//运用取地址实现信号传输(转到槽函数的第二种写法)
connect(ui->cancelButton, &QPushButton::clicked, this, &Widget::on_cancelButton_clicked); //调用取消按钮以及对应函数
//表达式(第三种)--对于槽函数不是很多的情况
connect(ui->browseButton, &QPushButton::clicked, [this]()
{
QMessageBox::information(this, "信息", "点击浏览"); //跳出一个对话框
/* this为跳出对话框的当前父类(Widget),跳出的框称为QMessageBox */
});
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_commitButton_clicked()
{
//获取lineEdit数据
QString program = ui->cmdLineEdit->text(); //访问ui界面中的数据文本,文本格式为QString
//创建process(进程)对象
QProcess *myProcess = new QProcess(this); //类名 对象指针 创建一个对象
myProcess->start(program); //program是从文本框(lineEdit)中获取的
}
void Widget::on_cancelButton_clicked()
{
this->close(); //关掉操作
}