pyqt listwidget 显示图片
时间: 2023-09-14 16:08:35 浏览: 196
要在PyQt的QListWidget中显示图片,可以通过以下步骤实现:
1. 首先,创建一个自定义的QListWidget部件,继承自QListWidget类,并定义一个add_image_items方法,用于添加图片项。
2. 在add_image_items方法中,遍历图片路径列表,并使用os.path.isfile函数来确保路径指向的是一个文件。然后,使用QListWidgetItem类创建一个项,并通过setIcon和setText方法设置项的图标和文本。
3. 调用addItem方法将项添加到QListWidget中。
4. 在主程序中,创建一个ImageListWidget实例,并调用其add_image_items方法,传入要显示的图片路径列表。
5. 最后,将ImageListWidget实例添加到窗口布局中,以显示图片。
以下是一个示例代码,演示如何使用PyQt的QListWidget显示图片:
```python
import os
from qtpy.QtCore import QSize
from qtpy.QtGui import QIcon
from PyQt5.QtWidgets import QListWidget, QListWidgetItem, QListView, QWidget, QApplication, QHBoxLayout, QLabel
class ImageListWidget(QListWidget):
def __init__(self):
super(ImageListWidget, self).__init__()
self.setFlow(QListView.TopToBottom) # 设置为从上到下排列
self.setIconSize(QSize(150, 100)) # 设置图标的大小为150x100
def add_image_items(self, image_paths=[]):
for img_path in image_paths:
if os.path.isfile(img_path):
img_name = os.path.basename(img_path)
item = QListWidgetItem(QIcon(img_path), img_name)
self.addItem(item)
# 创建应用程序和窗口
app = QApplication([])
window = QWidget()
layout = QHBoxLayout(window)
# 创建并添加图片列表部件
image_list_widget = ImageListWidget()
image_list_widget.add_image_items(["path/to/image1.jpg", "path/to/image2.jpg", "path/to/image3.jpg"])
layout.addWidget(image_list_widget)
window.show()
app.exec_()
```
这段代码创建了一个ImageListWidget部件,继承自QListWidget,然后在add_image_items方法中添加了要显示的图片项。最后,将ImageListWidget部件添加到窗口布局中,通过执行应用程序来显示窗口。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [PyQt5入门——QListWidget实现图片缩略图列表](https://blog.csdn.net/Bit_Coders/article/details/120084229)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [Qt5.9中使用列表控件QListWidget显示缩略图(完全模仿Windows图片视图文档)](https://blog.csdn.net/naibozhuan3744/article/details/81070068)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文