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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值