.pro文件
#------------------------------------------------- # # Project created by QtCreator 2024-01-03T09:59:01 # #------------------------------------------------- QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = run TEMPLATE = app # The following define makes your compiler emit warnings if you use # any feature of Qt which has been marked as deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the # deprecated API in order to know how to port your code away from it. DEFINES += QT_DEPRECATED_WARNINGS # You can also make your code fail to compile if you use deprecated APIs. # In order to do so, uncomment the following line. # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ main.cpp \ widget.cpp HEADERS += \ widget.h FORMS += \ widget.ui
Headers-widget.h文件
#ifndef WIDGET_H #define WIDGET_H #include <QWidget> #include<QProcess> #include<QMessageBox> namespace Ui { class Widget; } class Widget : public QWidget { Q_OBJECT public: explicit Widget(QWidget *parent = 0); ~Widget(); private slots: void on_commitButton_clicked(); void on_cancelButton_clicked(); private: Ui::Widget *ui; }; #endif // WIDGET_H
Sources-main.cpp文件
#include "widget.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); Widget w; w.show(); return a.exec(); }
Sources-widget.cpp文件
#include "widget.h" #include "ui_widget.h" Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) //等于 ui =new widget { ui->setupUi(this); //步骤2,通过connect链接。//正常是需要添加connect函数,只不过在QT中不connect也行 //链接信号与槽-谁发出信号,发出什么信号,谁处理信号,怎么处理信号 connect(ui->cmdLineEdit,SIGNAL(returnPressed()), this,SLOT(on_commitButton_clicked())); //ui界面的cmdLineEdit发出了信号, 信号是 returnPressed()信号, //this是指 Widget这个类来处理信号, 通过槽SLOT 执行函数来处理信号。 connect(ui->cancelButton,&QPushButton::clicked,this,&Widget::on_cancelButton_clicked); connect(ui->browseButton,&QPushButton::clicked,[this]() { QMessageBox::information(this,"信息","功能暂未完善"); //父类对话框,对话框名称,显示文本内容 }); } Widget::~Widget() //析构函数 { delete ui; } //步骤1,在ui界面右击空间跳转到槽,自动生成,代码输入。 void Widget::on_commitButton_clicked() { //获取lineedit数据 QString program = ui->cmdLineEdit->text(); //创建一个process对象 QProcess *myProcess = new QProcess(this); myProcess->start(program); } void Widget::on_cancelButton_clicked() { this->close(); }