Qt 3D UI

整了个花活0.0,在没改Qt源码的情况下,可以很轻松地将一个QWidget进行3D变换。 原理:

  • 通过前后两个四边形区域算出中心投影变换矩阵

  • 利用中心投影变换矩阵在QApplication中重新映射鼠标位置相关的事件

  • 通过QRHI和GraphicsEffect的机制,结合变换矩阵,重新绘制图像

  • 根据目标四边形的位置,自动伸缩绘制区域 目前还有一些问题:

  • 弹出窗口的位置有偏差

  • 焦点事件也对不上

不过现在能做好多有意思的东西了~

评论