关于如何在Qt Creater 中调用已经写好的 C++ 程序
事情的起因:
我是写OpenCV的,后来要加Qt界面,就搞了这么一个东西(也就是为什么Qt明明可以写OpenCv我还非要跑去VS写的原因)
前言&条件
我链接的OpenCV程序是调用相机,这里要链接exe文件。一般情况下生成的exe文件都在程序文件夹下的Debug目录下。
程序
1、
QProcess::startDetached("D:\\Qt_Unit\\QT_Datement\\OpencvTest0\\OpenCVTest.exe",QStringList());
QProcess::startDetached(“目标文件路径”,QStringList());
这条语句可以运行exe文件
2、
QStringList Stop;
Stop<<"/c"<<"taskkill"<<"-f"<<"-im"<<"OpenCVTest.exe";
QProcess process;
process.start("cmd.exe",Stop);
process.waitForFinished();
process.close();
这些可以关掉那个打开的exe文件(通过startDetached打开的外部程序不会随着主程序结束而结束)(在网上模仿的其他业界前辈的杀进程操作)
总代码(Qt)
我不是在main.cpp里加的,那样也行得通,不过。。。
#include "widget.h"
#include "ui_widget.h"
#include
#include
#include
Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
connect (ui->pushButton,&QPushButton::clicked,[=](){
QProcess::startDetached("D:\\Qt_Unit\\QT_Datement\\OpencvTest0\\OpenCVTest.exe",QStringList());
});
connect(ui->pushButton_2,&QPushButton::clicked,[=](){
QStringList Stop;
Stop<<"/c"<<"taskkill"<<"-f"<<"-im"<<"OpenCVTest.exe";
QProcess process;
process.start("cmd.exe",Stop);
process.waitForFinished();
process.close();
});
}
Widget::~Widget()
{
delete ui;
}
结语
也差不多了,之前一直找不到类似的贴子,希望读者少踩坑吧。