Qt C++ 嵌入外部 EXE 程序到窗口 | 完整示例代码
要在 C++ 中打开一个外部 exe 程序并将其嵌入到当前窗口中,你可以使用 Qt 的 QProcess 类来实现。下面是一个简单的示例代码:
#include <QApplication>
#include <QProcess>
#include <QVBoxLayout>
#include <QWidget>
#include <QWindow>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 创建一个QWidget作为主窗口
QWidget window;
window.setWindowTitle('External Program');
// 创建一个QProcess对象来运行外部程序
QProcess process;
// 设置外部程序的路径和参数
QString program = 'path_to_external_program.exe';
QStringList arguments = {'arg1', 'arg2'};
// 启动外部程序
process.start(program, arguments);
// 获取外部程序的窗口句柄
QWindow *externalWindow = process.windowHandle();
// 将外部程序的窗口嵌入到当前窗口中
QVBoxLayout *layout = new QVBoxLayout(&window);
layout->addWidget(QWidget::createWindowContainer(externalWindow));
window.show();
return app.exec();
}
请将 path_to_external_program.exe 替换为你想要打开的外部 exe 程序的路径,arg1 和 arg2 替换为外部程序的参数(如果有的话)。
这个示例代码使用 QProcess 类来启动外部程序,并使用 windowHandle() 函数获取外部程序的窗口句柄。然后,使用 createWindowContainer() 函数将外部程序的窗口嵌入到当前窗口中。最后,显示主窗口并进入应用程序的事件循环。
请注意,这个示例只能在支持嵌入的外部程序中工作,不是所有的外部程序都可以被嵌入到 Qt 窗口中。
原文地址: https://www.cveoy.top/t/topic/pTL6 著作权归作者所有。请勿转载和采集!