欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > Unity程序嵌入Qt后点击UI按钮Button没有反应

Unity程序嵌入Qt后点击UI按钮Button没有反应

2025/4/1 7:27:42 来源:https://blog.csdn.net/weixin_44328139/article/details/146583983  浏览:    关键词:Unity程序嵌入Qt后点击UI按钮Button没有反应

一、前言

在一次项目中,需要将Unity程序嵌入qt中,并在主界面显示,根据网络资料与相关代码,成功将unity程序嵌入,但是在点击Unity的Button按钮时却没有响应,在查找相关资料后,解决问题,在此记录。

二、问题原因

在单独运行unity的exe程序,button按钮能够正常触发,根据相关资料,发现问题可能是出现在unity程序嵌入qt窗口时,鼠标事件传递关系出现问题,猜测可能是嵌入时需要进行某些设置,之后尝试其他嵌入方式后,成功解决问题。

三、相关代码

void ShowUnityWindowsInQt::setWindowParent(HWND parentWidgetHandle, const QString& sonWindowTitleName,QWidget* parent)
{HWND hfigure;while (true){hfigure = FindWindow(NULL ,(LPCWSTR)(sonWindowTitleName.unicode()));if (hfigure != NULL){break;}}::SetParent(hfigure, parentWidgetHandle);LONG_PTR style = GetWindowLongPtr(hfigure, GWL_STYLE);style = style & ~(WS_THICKFRAME | WS_CAPTION | WS_SIZEBOX | WS_MAXIMIZEBOX | WS_MINIMIZEBOX);//移除子窗口的移动和调整大小的样式SetWindowLongPtr(hfigure, GWL_STYLE, style);m_window = QWindow::fromWinId((WId)hfigure);m_window->setFlags(m_window->flags() | Qt::CustomizeWindowHint | Qt::WindowTitleHint); //这边可以设置一下属性m_widget  = QWidget::createWindowContainer(m_window,this);m_widget->setFocusPolicy(Qt::StrongFocus);m_widget->setParent(parent);m_widget->show();}

四、参考文章

QT+Unity3D 超详细(将unity3D与QT进行连接,并实现信息传递)

五、最后 

在参考文章的内容是,该文章作者说有边框能缩放,没有边框就无法缩放,但是本人在使用以上代码嵌入unity窗口后,暂时没有遇到该问题,即没有边框,且能够正常缩放,同时ui按钮能够正常触发,此为本人项目中实现代码,仅供参考,如有问题,欢迎指正。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词