要在 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 程序的路径,arg1arg2 替换为外部程序的参数(如果有的话)。

这个示例代码使用 QProcess 类来启动外部程序,并使用 windowHandle() 函数获取外部程序的窗口句柄。然后,使用 createWindowContainer() 函数将外部程序的窗口嵌入到当前窗口中。最后,显示主窗口并进入应用程序的事件循环。

请注意,这个示例只能在支持嵌入的外部程序中工作,不是所有的外部程序都可以被嵌入到 Qt 窗口中。

Qt C++ 嵌入外部 EXE 程序到窗口 | 完整示例代码

原文地址: https://www.cveoy.top/t/topic/pTL6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录