[英]PyQt5 5.9 , setWindowIcon( QIcon(*WEB_LINK*) )
嗨,我的PyQt5 setWindowIcon有問題。
當我嘗試從本地圖像設置窗口圖標時,它可以完美運行。 但是當我嘗試放置一個在線鏈接時:
setWindowIcon( QIcon(" https://www.google.ge/images/branding/product/ico/googleg_lodp.ico ") )
這是行不通的。 該怎么辦? 它的32x32 ico btw。
〜謝謝
您必須使用QNetworkAccessManager
並從url 手動下載圖像。 然后從響應中讀取字節,創建一個QPixmap(因為它具有loadFromData方法)並從QPixmap初始化QIcon。
之后,您將能夠設置窗口圖標。
import sys
from PyQt5.QtCore import QUrl
from PyQt5.QtGui import QIcon, QPixmap
from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout
ICON_IMAGE_URL = "https://www.google.ge/images/branding/product/ico/googleg_lodp.ico"
class MainWindow(QWidget):
def __init__(self):
QWidget.__init__(self)
self.label = QLabel('Image loading demo')
self.vertical_layout = QVBoxLayout()
self.vertical_layout.addWidget(self.label)
self.setLayout(self.vertical_layout)
self.nam = QNetworkAccessManager()
self.nam.finished.connect(self.set_window_icon_from_response)
self.nam.get(QNetworkRequest(QUrl(ICON_IMAGE_URL)))
def set_window_icon_from_response(self, http_response):
pixmap = QPixmap()
pixmap.loadFromData(http_response.readAll())
icon = QIcon(pixmap)
self.setWindowIcon(icon)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.