PyQt5之图片轮播
之前看到了 QStackedWidget 做切换动画,让界面不那么生硬,于是参考了 http://qt.shoutwiki.com/wiki/Extending_QStackedWidget_for_sliding_page_animations_in_Qt 做了一个 QStackedWidget 的切换动画,然后利用 QStackedWidget 结合多个 QLabel 显示图片来做一个轮播效果。
其实在写之前也在网上找了很多例子,参看过后发现大多例子都是利用到了 paintEvent 去绘制,这样其实还是比较麻烦,个人觉得更好的方式是使用 QPropertyAnimation 属性动画修改控件中 QLabel 图片控件的 pos 位置属性就可以达到移动效果了。
比较核心的算法就是要计算当前页面和下一个页面的位置偏移量,比如:
# 计算偏移量
offsetX = self.frameRect().width()
offsetY = self.frameRect().height()
w_next.setGeometry(0, 0, offsetX, offsetY ...