【PyQT5】自定义控件 显示网络图片

【PyQT5】自定义控件 显示网络图片

原理:使用 requests 获取图片,加载图片内容到控件中即可。

import sys
import requests
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import (QWidget, QLabel, QVBoxLayout) 
from PyQt5.QtGui import QPixmap
class Picture(QWidget):
	def __init__(self, parent=None, url=None):
		super().__init__(parent) 
		self.url = url
		self.ui() 
	def ui(self):
		# Get Pictures 
		req = requests.get(self.url) 
		photo = QPixmap() 
		photo.loadFromData(req.content) 
		label= QLabel() 
		label.setPixmap(photo) 
		layout =QVBoxLayout() 
		layout.addWidget(label) 
		self.setLayout(layout) 
if __name__ == '__main__':
	app = QApplication(sys.argv) 
	url='https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=415293130,2419074865&fm=27&gp=0.jpg'
	pic = Picture(url=url) 
	pic.show() 
	sys.exit(app.exec_())

req = requests.get(self.url) 这一步会造成UI阻塞,建议使用twisted之类的库异步获取图片。

来源:https://www.codercto.com/a/28056.html