2012-04-11 5 views
0

Im Moment entwickle ich meine erste Anwendung in PyQt4, und was ich jetzt tun möchte, ist, das Fenstersymbol meiner Anwendung von einer Bildquelle auf einer Website einzustellen.PyQt4 - setWindowIcon von externer Website

Ich dachte, so etwas würde funktionieren, aber das ist nicht der Fall: Selbst.

# 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') 

Wie kann ich das erreichen? Vielen Dank im Voraus.

+0

welche Fehlermeldung erhalten Sie? – user850498

+0

Keine Fehlermeldung, aber kein Symbol wird angezeigt. –

Antwort

2

QIcon kann nicht gehen und Daten aus dem Internet abrufen. Sie müssen es selbst herunterladen und an QIcon senden. Etwas wie dieses:

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_()) 
+0

Vielen Dank! Lief wie am Schnürchen! –