qt-QProcess启动另一个可执行exe程序-qt程序打包

目录

一、新建空项目,添加可执行exe

二、析构函数中,结束process

实际编程中,需要在一个程序中启动另外一个可以执行的exe文件,且需要保证后续程序打包之后,依然能够实现该功能。有几点需要注意:

1、程序中另外exe的路劲需要使用相对路径,后续打包程序换到别的电脑也能继续使用。

2、次程序需要在主程序关闭时候跟随关闭。

3、qt软件打包流程

一、新建空项目,添加可执行exe

如图我将一个可执行的通用串口exe放在了Release文件夹中;

代码实现:直接在构造函数中输入下面的代码,

process = new QProcess(this);
	connect(process, &QProcess::errorOccurred, this, [&](QProcess::ProcessError error)
	{
		qDebug() << "Process error1:" << process->errorString();
	});
	QString projectPath = QCoreApplication::applicationDirPath();

	QString executablePath = projectPath + "/UniversalSerialPort_boxed.exe.exe";

	process->start(executablePath);

	if (!process->waitForStarted())
	{
		qDebug() << "Failed to start the process:" << process->errorString();
	}
	else
	{
		qDebug() << "Process started successfully.";
		// 可以在这里添加更多的逻辑来处理进程的运行  
	}

这是头文件:


程序运行后,界面如图:

但是此时,关闭主程序,次exe任然运行。

二、析构函数中,结束process

myProcess::~myProcess()
{
	if (process->Running)
		process->terminate();
}

添加后,程序就能正常关闭。

三、qt软件打包windeployqt

将项目的release文件中的所有东西赋值到一个新建的文件中。对于我来说,就是如下文件中的:

我在桌面新建一个文件夹1:

然后电脑打开,qt的工具:

首先在命令行中输入:C:——转到C盘
然后输入:cd C:\DeskTop\1 ——转到打包文件夹
最后输入:windeployqt myProcess.exe
然后发现文件夹中出现了许多东西:

这时候点击myprocess.exe程序,与在项目中运行一样,两个界面均出现。

接下来就可以利用打包工具进行打包了。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值