原理就是使用3个函数 FindWindow 、 QWindow::fromWinId 和 QWidget::createWindowContainer,具体实现如下:
#pragma once#include <QtWidgets/QMainWindow>
#include <QProcess>
#include "ui_UE42Qt.h"class UE42Qt : public QMainWindow
{Q_OBJECTpublic:UE42Qt(QWidget *parent = Q_NULLPTR);private:Ui::UE42QtClass *ui;private:QProcess* process;public:void StartUE4();void doInsideUE4(QString const& className, QString const& appName);
};
#include "UE42Qt.h"
#include <Windows.h>
#include <QWindow>UE42Qt::UE42Qt(QWidget *parent): QMainWindow(parent)
{ui->setupUi(this);StartUE4();
}void UE42Qt::StartUE4()
{//启动UE4程序QString sPath = "./WindowsNoEditor/Che.exe";process = new QProcess;process->start(sPath);Sleep(3000);if (process->waitForStarted())