将UE4嵌入QT的QWidget后,按键被屏蔽,VR功能也被屏蔽,求解

ycx445688210 2018-02-05 03:33:59
代码及运行状态如下,嵌入之后按键被屏蔽,图中小人无法接收键盘左右按键而移动,戴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);
}
}

...全文
4181 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lu-xl 2018-06-08
  • 打赏
  • 举报
回复
引用 6 楼 ycx445688210 的回复:
[quote=引用 5 楼 a983828600 的回复:] ui->UE4Widget->grabKeyboard(); ui->UE4Widget->grabMouse(); 这两句捕获了键盘与鼠标事件,
这个试过的,木有用...[/quote] 重写一些下MainWindow的keyEvent事件函数,打log看一下按键事件是不是被MainWindow接收了。 我在做这种嵌入窗口时,只有鼠标光标点入到游戏引擎中之后,游戏引擎才能接受按键事件。
ycx445688210 2018-04-03
  • 打赏
  • 举报
回复
引用 5 楼 a983828600 的回复:
ui->UE4Widget->grabKeyboard(); ui->UE4Widget->grabMouse(); 这两句捕获了键盘与鼠标事件,
这个试过的,木有用...
lu-xl 2018-04-02
  • 打赏
  • 举报
回复
ui->UE4Widget->grabKeyboard(); ui->UE4Widget->grabMouse(); 这两句捕获了键盘与鼠标事件,
PepperEggFriedRice 2018-03-01
  • 打赏
  • 举报
回复
问句题外话。现在UE4开发C++主程待遇和发展前途如何?
ycx445688210 2018-02-26
  • 打赏
  • 举报
回复
引用 2 楼 qq_22824481 的回复:
请问楼主解决了么?我也是这样的,另外我必须将qt主窗口放在屏幕左上角,焦点才能对齐,找了很久也没解决
我也没有找到解决办法,感觉是QT把消息屏蔽了。我后来用MFC实现了同样的功能,按键可以使用,但是VR还是不可用
萤火1129 2018-02-22
  • 打赏
  • 举报
回复
请问楼主解决了么?我也是这样的,另外我必须将qt主窗口放在屏幕左上角,焦点才能对齐,找了很久也没解决

16,203

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧