PyQt载入多张图片,以路径的形式显示和切换
时间: 2024-02-26 12:56:49 浏览: 232
可以使用QLabel和QPixmap来实现载入多张图片并以路径的形式显示和切换。以下是一个简单的示例代码:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
from PyQt5.QtGui import QPixmap
import os
class ImageSwitcher(QWidget):
def __init__(self, image_folder):
super().__init__()
self.image_folder = image_folder
self.images = []
self.current_image = 0
self.initUI()
def initUI(self):
# 读取所有图片
for filename in os.listdir(self.image_folder):
if filename.endswith('.png') or filename.endswith('.jpg'):
self.images.append(os.path.join(self.image_folder, filename))
# 显示第一张图片
self.image_label = QLabel()
self.image_label.setPixmap(QPixmap(self.images[self.current_image]))
# 添加切换按钮
prev_button = QPushButton('Prev')
next_button = QPushButton('Next')
prev_button.clicked.connect(self.show_prev_image)
next_button.clicked.connect(self.show_next_image)
# 布局
layout = QVBoxLayout()
layout.addWidget(self.image_label)
layout.addWidget(prev_button)
layout.addWidget(next_button)
self.setLayout(layout)
def show_prev_image(self):
# 显示上一张图片
self.current_image = (self.current_image - 1) % len(self.images)
self.image_label.setPixmap(QPixmap(self.images[self.current_image]))
def show_next_image(self):
# 显示下一张图片
self.current_image = (self.current_image + 1) % len(self.images)
self.image_label.setPixmap(QPixmap(self.images[self.current_image]))
if __name__ == '__main__':
app = QApplication([])
image_switcher = ImageSwitcher('image_folder')
image_switcher.show()
app.exec_()
```
在上面的代码中,我们创建了一个名为`ImageSwitcher`的QWidget,它接受一个`image_folder`参数,这个参数指定了图片所在的文件夹路径。在`initUI`方法中,我们读取了所有的图片文件,并显示了第一张图片。在`show_prev_image`和`show_next_image`方法中,我们分别显示了上一张和下一张图片。最后,在`if __name__ == '__main__':`中,我们创建了一个QApplication并运行了`ImageSwitcher`。
阅读全文