功能实现:使用QWidget创建的窗口支持窗口旋转功能。
展示的示例中支持由水平方向旋转至垂直方向。至于其它角度旋转的问题,看完这篇文章后应该会很简单能实现的!
开发环境:win VS2019 + Qt 5.15.2
在实现之前也有想用使用 QPropertyAnimation类,用动画的方式实现,经过验证发现,动画类不支持在object中进行旋转操作,所以放弃!
所以,采用广大博友推荐的方式:QGraphicsView控制场景中的子窗口进行旋转。
那么重点:如何让QWidget嵌入到QGraphicsView中并进行旋转。
首先,分享下实现出来的效果,如果需要这样的功能,大家可以继续看下去了~
当前的GIF效果只是展示了旋转功能的使用,具体项目中的业务,大家可以根据自己的情况进行修改,但是核心不变。
功能实现
开发环境:windows环境下 VS2019+5.15.2
当前窗口已经使用QWidget开发完成,此时,使用QGraphicsScene类将所有的窗口添加进去,能够快速进行旋转。
在当前demo中旋转父窗口是:QtRotateWidget,并且在该类中所有的子窗口需要使用QWidget继承实现,不要使用QDialog作为父类,否则无法进行控制!
demo涉及的子类包括:
QParentContentWidget:当前类属于父类,承载所有子窗口,相当于画布,每次旋转的时候,只是旋转的是子窗口的位置。