代码及运行状态如下,嵌入之后按键被屏蔽,图中小人无法接收键盘左右按键而移动,戴VR眼镜也没有效果
void MainWindow::StartUE4()
{
//启动UE4程序
QString sPath = "D://WindowsNoEditor//UE4play.exe";
process = new QProcess;
process->start(sPath);
if(process->waitForStarted())
{
QString ClassName( "UnrealWindow" );
QString AppName( "TCPSocket (64-bit, PCD3D_SM5)" );
doInsideUE4(ClassName,AppName);
}
}
//将UE4嵌入到QT中
void MainWindow::doInsideUE4(QString const& className,QString const& appName)
{
QWindow *m_window;
HWND AppWnd;
LPCWSTR App = reinterpret_cast <LPCWSTR>(className.data());
LPCWSTR AppCaption = reinterpret_cast <LPCWSTR>(appName.data());
AppWnd= ::FindWindow( App, AppCaption);
m_window = QWindow::fromWinId((WId)AppWnd);
if(m_window)
{
m_window->setFlags(m_window->flags() | Qt::CustomizeWindowHint | Qt::WindowTitleHint);
ui->UE4Widget = QWidget::createWindowContainer(m_window, this,Qt::Widget);
ui->UE4Widget->setFocusPolicy(Qt::StrongFocus);
ui->UE4Widget->setFocus();
ui->UE4Widget->grabKeyboard();
ui->UE4Widget->grabMouse();
this->setFocusPolicy(Qt::ClickFocus);
ui->UE4Widget->setMinimumSize(561, 441);
}
}