pyQT5编写:如果文件夹内有图片,排成一列显示在页面顶部,如果没有图片,弹出消息窗口“尚未生成人脸图像”
时间: 2024-02-27 10:51:45 浏览: 64
PyQt5 实现给窗口设置背景图片的方法
5星 · 资源好评率100%
可以使用QListWidget控件来实现文件夹中图片的展示,同时使用QMessageBox控件来弹出消息窗口。
1. 首先需要获取指定文件夹中的所有图片路径,可以使用Python内置的os和glob模块来实现:
```python
import os
import glob
image_folder = '/path/to/folder' # 指定文件夹路径
image_files = glob.glob(os.path.join(image_folder, '*.jpg')) # 获取所有jpg格式的文件路径
```
2. 创建一个QListWidget控件,并将获取到的图片路径添加到控件中:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QListWidget, QListWidgetItem, QMessageBox
from PyQt5.QtGui import QIcon, QPixmap
class ImageListWidget(QListWidget):
def __init__(self, image_files):
super().__init__()
if not image_files:
QMessageBox.warning(self, '提示', '尚未生成人脸图像')
else:
for image_file in image_files:
item = QListWidgetItem(QIcon(image_file), os.path.basename(image_file))
self.addItem(item)
self.setIconSize(QSize(100, 100)) # 设置图片大小
app = QApplication(sys.argv)
widget = QWidget()
image_list = ImageListWidget(image_files)
widget.setCentralWidget(image_list)
widget.show()
sys.exit(app.exec_())
```
3. 如果文件夹中没有图片,则弹出消息窗口,否则将图片路径添加到QListWidget控件中,并设置图片大小。
完整代码如下:
```python
import os
import glob
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QListWidget, QListWidgetItem, QMessageBox
from PyQt5.QtGui import QIcon, QPixmap
from PyQt5.QtCore import QSize
class ImageListWidget(QListWidget):
def __init__(self, image_files):
super().__init__()
if not image_files:
QMessageBox.warning(self, '提示', '尚未生成人脸图像')
else:
for image_file in image_files:
item = QListWidgetItem(QIcon(image_file), os.path.basename(image_file))
self.addItem(item)
self.setIconSize(QSize(100, 100)) # 设置图片大小
if __name__ == '__main__':
image_folder = '/path/to/folder' # 指定文件夹路径
image_files = glob.glob(os.path.join(image_folder, '*.jpg')) # 获取所有jpg格式的文件路径
app = QApplication(sys.argv)
widget = QWidget()
image_list = ImageListWidget(image_files)
widget.setCentralWidget(image_list)
widget.show()
sys.exit(app.exec_())
```
阅读全文