pyqt5恩么实现切换图片的效果

请问用pyqt5怎么实现切换图片的功能,具体如下图
第一张图片

img


当我点击下一张的时候,会变成下图

img

下面是图片路径

img

可以通过以下步骤实现:
1、在界面中添加一个QLabel控件,用于显示图片。
2、在代码中,使用QPixmap加载4张图片,并将它们存储在一个列表中。
3、定义一个整数变量,用于保存当前显示的图片的索引值。
4、当点击切换按钮时,将索引值加1,如果超出了列表长度,则重新从0开始。
5、将当前索引对应的图片设置为QLabel的背景,即可实现切换效果。
以下是示例代码:

import sys
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QApplication, QLabel, QPushButton, QVBoxLayout, QWidget

class ImageSwitcher(QWidget):
    def __init__(self):
        super().__init__()
        self.setMinimumSize(500, 400)  # 设置窗口最小尺寸为500x400
        self.setMaximumSize(800, 700)  # 设置窗口最大尺寸为500x400
        self.images = [QPixmap("1.jpg"), QPixmap("2.png"), QPixmap("3.png"), QPixmap("4.png")]
        self.current_index = 0
        self.label = QLabel()
        self.label.setAlignment(Qt.AlignCenter)
        self.label.setPixmap(self.images[self.current_index])
        self.button = QPushButton("Switch Image")
        self.button.clicked.connect(self.switch_image)
        layout = QVBoxLayout()
        layout.addWidget(self.label)
        layout.addWidget(self.button)
        self.setLayout(layout)

    def switch_image(self):
        self.current_index = (self.current_index + 1) % len(self.images)
        self.label.setPixmap(self.images[self.current_index])

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = ImageSwitcher()
    window.show()
    sys.exit(app.exec_())

创建了一个ImageSwitcher类,继承自QWidget。在构造函数中,我们加载4张图片,并将它们存储在self.images列表中。我们还创建了一个QLabel控件,用于显示当前图片,以及一个QPushButton控件,用于触发切换事件。
在switch_image方法中,我们将当前索引值加1,并使用取余运算符将其限制在列表长度范围内。然后,我们使用setPixmap方法将当前索引对应的图片设置为QLabel的背景。这样,每次点击切换按钮,都会显示下一张图片。
最后,我们创建了一个QApplication对象,将ImageSwitcher实例化,并调用show方法显示窗口。运行程序后,可以看到初始时显示第一张图片,点击切换按钮后会依次显示第二、第三、第四张图片,最后又回到第一张。