[C++]Qt 绑定外部 exe 输出 QT如何绑定exe到qt应用程序输出在 Qt 中绑定外部 exe 进程的输出到 Qt 应用程序核心是通过QProcess类实现 —— 它可以启动外部进程并捕获其标准输出stdout和标准错误stderr。核心实现步骤跨平台 Windows/Linux/ARMcpp#include QCoreApplication #include QProcess #include QDebug int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QProcess process; // 1. 启动外部exe替换为你的exe路径Linux下是可执行文件路径 // Windows示例process.start(cmd.exe, QStringList() /c dir); // Linux示例process.start(/bin/ls, QStringList() -l); process.start(你的exe绝对路径, QStringList()); // 2. 绑定输出信号当外部进程有输出时触发槽函数 QObject::connect(process, QProcess::readyReadStandardOutput, [](){ // 读取标准输出 QByteArray output process.readAllStandardOutput(); qDebug() 【标准输出】 output; // 可将 output 显示到 Qt 界面如 QTextEdit }); // 3. 绑定错误输出信号 QObject::connect(process, QProcess::readyReadStandardError, [](){ // 读取标准错误 QByteArray error process.readAllStandardError(); qDebug() 【错误输出】 error; }); // 4. 绑定进程结束信号 QObject::connect(process, QProcess::finished, [](int exitCode, QProcess::ExitStatus exitStatus){ qDebug() 进程结束退出码 exitCode; a.quit(); }); return a.exec(); }关键说明路径处理跨平台重点Windowsexe 路径建议用绝对路径如C:/test/hello.exe若 exe 在 Qt 输出目录可直接写文件名。Linux/ARM需确保可执行文件有执行权限chmod x 文件名路径格式如/home/user/test/hello。实时输出 vs 一次性读取上述代码用readyReadStandardOutput实现实时输出外部进程输出一行Qt 就捕获一行。若要等进程结束后一次性读取可在finished信号中调用readAllStandardOutput()。带参数启动 exe传给start的第二个参数QStringList是 exe 的命令行参数例如cpp// 启动 ping.exe参数ping 127.0.0.1 -n 3 process.start(ping.exe, QStringList() 127.0.0.1 -n 3);界面集成示例输出到 QTextEdit如果是 GUI 程序将输出显示到QTextEditcpp// 在 MainWindow 中 #include QMainWindow #include QProcess #include QTextEdit class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent nullptr) : QMainWindow(parent) { QTextEdit *edit new QTextEdit(this); setCentralWidget(edit); QProcess *process new QProcess(this); process-start(你的exe路径); connect(process, QProcess::readyReadStandardOutput, this, [](){ QByteArray output process-readAllStandardOutput(); edit-append(output); // 追加到文本框 }); } };