pyqt5实现图片卷帘代码
时间: 2023-07-03 16:33:36 浏览: 133
以下是使用 PyQt5 实现图片卷帘效果的示例代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtGui import QPixmap
from PyQt5.QtCore import Qt
class ImageSlider(QWidget):
def __init__(self):
super().__init__()
# 设置窗口属性
self.setFixedSize(400, 300)
self.setWindowTitle('Image Slider')
# 加载两张图片
self.image1 = QPixmap('image1.jpg').scaled(200, 300, Qt.KeepAspectRatio)
self.image2 = QPixmap('image2.jpg').scaled(200, 300, Qt.KeepAspectRatio)
# 创建标签并设置图片
self.label1 = QLabel(self)
self.label1.setPixmap(self.image1)
self.label1.move(0, 0)
self.label2 = QLabel(self)
self.label2.setPixmap(self.image2)
self.label2.move(200, 0)
# 设置卷帘效果初始位置
self.slide_position = 0
# 创建定时器,每隔一段时间刷新一次卷帘效果位置
self.timer = self.startTimer(50)
def timerEvent(self, event):
# 更新卷帘效果位置
self.slide_position += 5
if self.slide_position > 200:
self.slide_position = 0
# 更新标签位置和大小
self.label1.setGeometry(0, 0, self.slide_position, 300)
self.label2.setGeometry(self.slide_position, 0, 200 - self.slide_position, 300)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = ImageSlider()
window.show()
sys.exit(app.exec_())
```
在这个例子中,我们创建了一个 `ImageSlider` 类来实现图片卷帘效果。在 `__init__` 方法中,我们加载了两张图片并创建了两个标签来显示它们。然后,我们创建了一个定时器来定期更新卷帘效果的位置。在 `timerEvent` 方法中,我们更新了卷帘效果的位置,并根据位置更新了标签的位置和大小。最终,我们通过启动应用程序并显示窗口来运行程序。
阅读全文