2012-04-11 4 views
0

현재 PyQt4에서 첫 번째 응용 프로그램을 개발 중입니다. 지금하고 싶은 것은 웹 사이트의 이미지 소스에서 내 응용 프로그램의 창 아이콘을 설정하는 것입니다.PyQt4 - 외부 웹 사이트의 setWindowIcon

나는 이런 식으로 동작 할 것이라고 생각했지만, 그렇지 않다. 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') 

어떻게하면됩니까? 미리 감사드립니다.

+0

어떤 오류 메시지가 나타 납니까? – user850498

+0

오류 메시지는 표시되지 않지만 아이콘은 표시되지 않습니다. –

답변

2

QIcon 웹에서 데이터를 가져올 수 없습니다. 직접 다운로드하여 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_()) 
+0

정말 고마워요! 매력처럼 일했습니다! –

관련 문제