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

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