2017-01-11 1 views
0

Я пытаюсь добавить изображение к кнопке непосредственно с помощью URL-адреса в pyqt4. На что я не увенчался успехом. Возможно, что изображение с изображения, хранящегося в системе, возможно. Некоторые предложения или советы были бы благодарны.доступ к изображению из URL-адреса в кнопке в pyqt4 [Python]

Спасибо

`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

первый файл для скачивания на локальном диске. – furas

+0

Проблема в том, что я хочу получить доступ непосредственно с URL-адреса и на этом конкретном URL-адресе, который был изменен, и затем обновить его. –

+0

'QPixmap' не может читать/скачивать с сервера, поэтому вам нужно читать/скачивать самостоятельно. Вы можете читать с сервера (используя 'urllib',' запросы' и т. Д.) И: (a) сохранять на локальном диске и открывать из этого файла, (b) создавать файл-подобный объект в памяти, который вы можете использовать как локальный файл - см .: 'io.StringIO' или' io.BytesIO' – furas

ответ

0

раствор добавляют в следующем code.The изображения в URL должен быть загружен в виде отдельного имени файла.

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_()) 
Смежные вопросы