2017-01-11 4 views
0

Ich versuche Bild hinzufügen, um Drucktaste direkt die URL in PyQt4 verwenden. Zu welchem ​​ich nicht erfolgreich bin. Das Bild von dem Bild hinzufügen, das im System gespeichert wird, ist möglich. Deshalb wären irgendwelche Vorschläge oder Ratschläge dankbar.Zugriff Bild von URL in Drucktaste in PyQt4 [Python]

Danke

`import sys 
from PyQt4 import QtGui, QtCore 
from PyQt4.QtGui import * 
from PyQt4.QtCore import * 

try: 
    _fromUtf8 = QtCore.QString.fromUtf8 
except AttributeError: 
    def _fromUtf8(s): 
     return s 

try: 
    _encoding = QtGui.QApplication.UnicodeUTF8 
    def _translate(context, text, disambig): 
     return QtGui.QApplication.translate(context, text, disambig, _encoding) 
except AttributeError: 
    def _translate(context, text, disambig): 
     return QtGui.QApplication.translate(context, text, disambig) 


class Entry_view(QtGui.QMainWindow): 
    def __init__(self, parent=None): 
     QtGui.QWidget.__init__(self, parent) 
     self.setGeometry(25, 25, 800, 480) 

     timer = QTimer() 

     t1 = QtGui.QPushButton("Tool1",self) 

     font = QtGui.QFont() 

     t1.setFont(font) 
     t1.setObjectName(_fromUtf8("t1")) 
     icon1 = QtGui.QIcon()    # Image has been added to the tool 
     icon1.addPixmap(QtGui.QPixmap(_fromUtf8('http://www.siliconsemiconductor.net/images/news/195481055397707.jpg')), QtGui.QIcon.Normal, QtGui.QIcon.Off) 
     t1.setIcon(icon1) 
     t1.setIconSize(QtCore.QSize(170, 170)) 
     t1.setObjectName(_fromUtf8("t1")) 
     # t1.clicked.connect(self.Tool_Image_Ext) 
     t1.resize(400,255) 
     t1.move(0, 0) 
     self.Tool_Image_Ext() 
     self.show()` 
+1

erste Datei auf lokaler Festplatte herunterladen. – furas

+0

Problem ist, dass ich direkt aus der URL und an diesem bestimmten URL zugreifen möchten, das Bild hat sich verändert wurde dann, wie es zu aktualisieren. –

+0

'QPixmap' kann nicht vom Server gelesen/heruntergeladen werden, so dass Sie selbst lesen/herunterladen müssen. Sie können vom Server gelesen (mit 'urllib',' requests', etc.) und: (a) auf der lokalen Festplatte speichern und öffnen aus dieser Datei, (b) dateiähnliche Objekt im Speicher erstellen, die Sie wie lokale verwenden können Datei - siehe: 'io.StringIO' oder' io.BytesIO' – furas

Antwort

0

Die Lösung wird in folgenden code.The Bild in URL hinzugefügt sollte in einem separaten Dateinamen heruntergeladen werden.

import sys 
from PyQt4 import QtGui, QtCore 
from PyQt4.QtGui import * 
from PyQt4.QtCore import * 
from PyQt4.QtGui import QPixmap, QIcon 
import urllib 
import cStringIO 
from urllib import urlopen 
import requests 

try: 
    _fromUtf8 = QtCore.QString.fromUtf8 
except AttributeError: 
    def _fromUtf8(s): 
     return s 

try: 
    _encoding = QtGui.QApplication.UnicodeUTF8 
def _translate(context, text, disambig): 
    return QtGui.QApplication.translate(context, text, disambig, _encoding) 
except AttributeError: 
def _translate(context, text, disambig): 
    return QtGui.QApplication.translate(context, text, disambig) 


class Entry_view(QtGui.QMainWindow): 
    def __init__(self, parent=None): 
     QtGui.QWidget.__init__(self, parent) 
     self.setGeometry(25, 25, 800, 480) 

     t1 = QtGui.QPushButton("Tool1",self) 
     font = QtGui.QFont() 
     font.setFamily(_fromUtf8("Times New Roman")) 
     font.setPointSize(12) 
     font.setBold(True) 
     font.setWeight(75) 
     t1.setFont(font) 
     t1.setObjectName(_fromUtf8("t1")) 
     icon1 = QtGui.QIcon() # Image has been added to the tool 
     data = urllib.urlretrieve("https://upload.wikimedia.org/wikipedia/en/b/be/Google_Chrome_for_Android-_Android_5.0_Logo.png","image1.png") 
     icon1.addPixmap(QtGui.QPixmap("D:PythonFolder\Codes\image1.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) 
     t1.setIcon(icon1) 
     t1.setIconSize(QtCore.QSize(170, 170)) 
     t1.setObjectName(_fromUtf8("t1")) 
     t1.resize(400,255) 
     t1.move(0, 0) 
     self.show()    

if __name__ == "__main__": 
    app = QtGui.QApplication(sys.argv) 

    myapp = Entry_view() 
    sys.exit(app.exec_())