簡體   English   中英

PyQt5 5.9,setWindowIcon(QIcon(* WEB_LINK *))

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM