PyQt5显示网络图片

有时候也许要从网上加载一张图片,并显示出来。我们先找一张图片,用requests获取这张图片,然后加载并显示,核心代码如下:

url = "http://photocdn.sohu.com/20120128/Img333056814.jpg"
res = requests.get(url)
img = QImage.fromData(res.content)

l1 = QLabel(self)
l1.setPixmap(QPixmap.fromImage(img))
l1.move(10,10)

self.setGeometry(100,100,620,500)
self.show()

QImage.fromData支持svg格式,将上述链接换成svg链接同样可以显示。

要在PyQt5显示网络图片,您可以使用QPixmap和QLabel。您需要使用一个Url请求来获取网络图片,然后将其转换为QPixmap对象,最后将其设置为QLabel的图像。 以下是一个示例代码,将网络图片显示在QLabel中: ```python import sys from PyQt5.QtCore import Qt, QUrl from PyQt5.QtGui import QPixmap from PyQt5.QtWidgets import QApplication, QLabel from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest, QNetworkReply class NetworkImage(QLabel): def __init__(self, parent=None): super(NetworkImage, self).__init__(parent) self.setAlignment(Qt.AlignCenter) self.setStyleSheet("background-color: white;") def setUrl(self, url): self.url = url self.downloadImage() def downloadImage(self): manager = QNetworkAccessManager() manager.finished.connect(self.onFinished) manager.get(QNetworkRequest(QUrl(self.url))) def onFinished(self, reply): if reply.error(): print(reply.errorString()) else: data = reply.readAll() pixmap = QPixmap() pixmap.loadFromData(data) self.setPixmap(pixmap) if __name__ == '__main__': app = QApplication(sys.argv) label = NetworkImage() label.setUrl("https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png") label.show() sys.exit(app.exec_()) ``` 在这个例子中,我们创建了一个名为NetworkImage的类,它继承自QLabel。我们将它的背景颜色设置为白色,并将图像居中对齐。 我们还定义了一个setUrl()函数,该函数接受一个URL作为参数,并将其存储在类变量中。我们还定义了一个downloadImage()函数,该函数使用QNetworkAccessManager从URL下载图像。我们还定义了一个onFinished()函数,该函数在下载完成后被调用,并将下载的数据转换为QPixmap对象,然后将其设置为QLabel的图像。 在main函数中,我们创建了一个NetworkImage对象,并将其设置为Google的标志的URL。最后,我们显示QLabel并启动应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值