python异步加载图片_如何在PyQt5中正确异步加载图像?

我在尝试如何在pyqtqlistview中正确地完成异步映像加载。在

我的主小部件由一个Qlistview和一个QLineEdit文本框组成。

我有一个参与者数据库,我使用QAbstractListModel的子类查询该数据库,当文本输入到文本框中时,数据库被查询,并用结果填充模型。结果随后显示在Qlistview中。(每个Actor的结果包含actors的名称和图像的路径。)

是这样的:

当结果集太大(大于50)时,问题就开始了,从磁盘加载图像会使用户界面挂起。我希望实现的行为是首先为所有结果加载一个占位符图像,然后在另一个线程中从磁盘加载特定的映像,加载后用新加载的映像更新Qlistview项。在

为此,我创建了一个自定义的QItemDelegate类,该类包含所有需要加载的图像的缓存。如果图像不在缓存中,那么它将绘制占位符图像并向另一个线程发送信号,该线程加载该图像并将其放入缓存中。在

我的代表课程:class MyDelegate(QStyledItemDelegate):

t1 = pyqtSignal(str, str, dict)

def __init__(self, image_cache, loader_thread, parent=None):

super(MyDelegate, self).__init__(parent)

self.placeholder_image = QPixmap(PLACEHOLDER_IMAGE_PATH).scaled(200, 300)

self.image_cache = image_cache

self.loade

你可能感兴趣的:(python异步加载图片)