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/ia1M 著作权归作者所有。请勿转载和采集!