0

現在、PyQt4 で最初のアプリケーションを開発しています。今やりたいことは、Web サイトの画像ソースからアプリケーションのウィンドウ アイコンを設定することです。

私はこのようなものがうまくいくと思っていましたが、そうではありません: self.

# Sets the application icon
def set_app_icon(self, icon_url):
    self.setWindowIcon(QIcon(QUrl(icon_url)))

self.set_app_icon('http://web.page/icon.png')

どうすればこれを達成できますか? 前もって感謝します。

4

1 に答える 1

2

QIconWeb からデータを取得することはできません。自分でダウンロードして に渡す必要がありますQIcon。このようなもの:

import sys
from PyQt4 import QtGui, QtCore, QtNetwork

class Main(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(Main, self).__init__(parent)

    def loadIconFromUrl(self, url):
        manager = QtNetwork.QNetworkAccessManager(self)
        manager.finished.connect(self._setIconFromReply)
        manager.get(QtNetwork.QNetworkRequest(QtCore.QUrl(url)))

    def _setIconFromReply(self, reply):
        p = QtGui.QPixmap()
        p.loadFromData(reply.readAll(), format="ico")
        self.setWindowIcon(QtGui.QIcon(p))

app = QtGui.QApplication(sys.argv)
main = Main()
main.loadIconFromUrl("http://en.wikipedia.org/favicon.ico")
main.show()
sys.exit(app.exec_())
于 2012-04-11T18:21:26.957 に答える