117 lines
4.1 KiB
Markdown
117 lines
4.1 KiB
Markdown
回到core头文件,新增一个,显示测试UI的ShowUI枚举,再声明一个TestShowUI的函数
|
||
|
||
![[Pasted image 20240806201253.png]]
|
||
|
||
Core源文件,对应实现,设定测试UI的父窗体,是Core获取到的,Win窗体,再调用exec进行事件等待,窗体操作完成,再执行后续操作,参考[[qt中main函数中的exec()作用总结]]
|
||
|
||
![[Pasted image 20240806201400.png]]
|
||
|
||
在Invoke函数中,添加对应的case触发,和函数调用
|
||
|
||
![[Pasted image 20240806201756.png]]
|
||
|
||
保存修改,编译构建
|
||
|
||
![[Pasted image 20240806201828.png]]
|
||
|
||
回到Unity端,脚本,也对应添加,同名枚举
|
||
|
||
![[Pasted image 20240806201853.png]]
|
||
|
||
再加一个回调
|
||
|
||
![[Pasted image 20240806201909.png]]
|
||
|
||
在OnGUI中,对应调用
|
||
|
||
![[Pasted image 20240806201946.png]]
|
||
|
||
保存修改,打开Unity,运行,显示UI和阴影遮罩特效,正常
|
||
|
||
![[Pasted image 20240806202059.png]]
|
||
|
||
然后,开始弄Miniblink相关,miniblink是一个开源的小巧浏览器框架,参考[[miniblink功能整理]],先在UI子项目,添加新文件;
|
||
因为网页渲染相关,跟qt原本的半透明属性设置,会存在显示渲染的bug,所以需要两个ui,实现内置浏览器的功能,后续会再创建一个,背景相关的ui;
|
||
|
||
![[Pasted image 20240806214050.png]]
|
||
|
||
![[Pasted image 20240806214258.png]]
|
||
|
||
![[Pasted image 20240806214731.png]]
|
||
|
||
命名为MiniBlinkUI即可
|
||
|
||
![[Pasted image 20240806214812.png]]
|
||
|
||
来到UI子项目路径,把对应miniblink的头文件相关wke.h,复制粘贴到该目录
|
||
|
||
![[Pasted image 20240806220314.png]]
|
||
|
||
右键子项目,添加现有文件
|
||
|
||
![[Pasted image 20240806220350.png]]
|
||
|
||
把头文件,加进去
|
||
|
||
![[Pasted image 20240806220417.png]]
|
||
|
||
miniblinkui界面编辑,设置一下宽高
|
||
|
||
![[Pasted image 20240807113417.png]]
|
||
|
||
头文件,include引用关系,和构造函数,还有信号和关闭等,声明
|
||
|
||
![[Pasted image 20240807113540.png]]
|
||
|
||
内置浏览器的调用,需要使用到 miniblink_4975_x64.dll 这个dll文件,是从官网的github开源地址,下载即可;
|
||
先把该dll文件,拷贝粘贴到,Unity.exe游戏引擎,所在路径即可;
|
||
|
||
![[Pasted image 20240807114237.png]]
|
||
|
||
源文件,构造函数中,先获取到,应用程序的目录路径;
|
||
当前是基于Unity工程打开,也就是Unity.exe所在的路径;
|
||
通过各内置函数,wkeLoadURL加载网址,wkeSetWkeDllPath设置dll路径,参考[[QString转wchar_t]],wkeInitialize完成初始化;
|
||
通过setWindowFlags函数,设置好qt窗体的显示属性后,通过wkeCreateWebWindow内置函数,完成网页窗体的设置即可,设定分辨率是640*480,和该ui窗体界面的尺寸,一致;
|
||
最终,通过wkeShowWindow函数接口,显示webview;
|
||
再通过wkeLoadURL函数接口,加载对应网址;
|
||
|
||
![[Pasted image 20240811174311.png]]
|
||
|
||
析构函数、还有关闭函数相关,使用miniblink的wkeFinalize函数,清理即可
|
||
|
||
![[Pasted image 20240807114830.png]]
|
||
|
||
开始添加,网页背景相关
|
||
|
||
![[Pasted image 20240807115039.png]]
|
||
|
||
![[Pasted image 20240807115108.png]]
|
||
|
||
![[Pasted image 20240807115125.png]]
|
||
|
||
命名为MiniBlinkUIBg界面
|
||
|
||
![[Pasted image 20240807115150.png]]
|
||
|
||
ui界面编辑,弄一个pushbutton按钮,用来关闭网页
|
||
|
||
![[Pasted image 20240807115337.png]]
|
||
|
||
尺寸和属性参考
|
||
|
||
![[Pasted image 20240807115415.png]]
|
||
|
||
![[Pasted image 20240807115436.png]]
|
||
|
||
![[Pasted image 20240807115455.png]]
|
||
|
||
头文件,是继承自ShadowDialog阴影特效类;
|
||
声明的私有变量中,还包含miniblink前置ui相关的MiniBlinkUI变量;
|
||
|
||
![[Pasted image 20240807115558.png]]
|
||
|
||
源文件,构造函数中,实例化前置MiniBlinkUI窗体,作为子窗体;通过setParent函数,设置当前背景,为父窗体即可,参考[[解决网页在qt半透明情况下,无法正常渲染的问题]];
|
||
在initSignals初始化信号的函数中,通过connect的方式,把pushbutton按钮的点击,和CloseAll函数调用,关联起来;
|
||
而CloseAll函数,是调用前置MiniBlinkUI窗体的CloseAll函数,关闭各事件相关,窗体指向,也是设置为空指针,参考[[nullptr]];
|
||
|
||
![[Pasted image 20240807115709.png]] |