2012-04-11 12 views
0

私は現在PyQt4で私の最初のアプリケーションを開発しています。私が今やってみたいのは、自分のアプリケーションのウィンドウアイコンをウェブサイトの画像ソースからセットすることです。PyQt4 - 外部WebサイトからのsetWindowIcon

私はこれがうまくいくと思いましたが、それはそうではありません: 自己。

# 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

ありがとう!チャームのように働いた! –

関連する問題