Apr-27-2018, 11:30 AM
Bonjour tout le monde
Je n'arrive pas à afficher des images dans la table avec ce code :
Quelqu'un aurait une idée ou un explication ? Merci beaucoup d'avance !
------------------------------
Hello everybody
I can not display images in the table with this code:
Someone would have an idea or an explanation? Thank you very much in advance !
Je n'arrive pas à afficher des images dans la table avec ce code :
#!/usr/bin/python
# -*- coding: utf-8 -*-
from PyQt5 import QtWidgets
from PyQt5 import QtGui, QtCore
import sys
import mainwindow # import du fichier mainwindow.py généré par pyuic5
import pycurl
import cStringIO
import re
class MyWindow(QtWidgets.QMainWindow):
def __init__(self, parent=None):
QtWidgets.QMainWindow.__init__(self, parent)
self.ui = mainwindow.Ui_MainWindow()
self.ui.setupUi(self)
# un clic sur le bouton appellera la méthode 'action_bouton'
self.ui.pushButton_2.clicked.connect(self.action_bouton)
self.ui.tableWidget.setColumnCount(2)
header = self.ui.tableWidget.horizontalHeader()
header.setSectionResizeMode(0, QtWidgets.QHeaderView.ResizeToContents)
header.setSectionResizeMode(1, QtWidgets.QHeaderView.ResizeToContents)
def action_bouton(self):
print('Appui bouton.')
buf = cStringIO.StringIO()
ExampleVariable = 'TEST'
c = pycurl.Curl()
c.setopt(c.URL, 'URLTEST'+ExampleVariable+'URLTEST') #->OK
c.setopt(c.WRITEFUNCTION, buf.write)
c.perform()
from bs4 import BeautifulSoup
soup = BeautifulSoup(buf.getvalue(), "lxml")
for each_div in soup.findAll("div", {"class": "wrapper_product_1"}):
print each_div.findNext('img')['src'].encode('utf-8') #recup image -> OK
NameImage = each_div.findNext('img')['alt']
rowPosition = self.ui.tableWidget.rowCount()
self.ui.tableWidget.insertRow(rowPosition)
self.ui.tableWidget.setItem(rowPosition,0, QtWidgets.QTableWidgetItem(NameImage))
????
##self.tableWidget_SearchJeuQueG.setImage(rowPosition, 1, each_div.findNext('img')['src'])
##self.tableWidget_SearchJeuQueG.setItem(rowPosition , 1, QIcon("test.jpg"))
##self.tableWidget_SearchJeuQueG.item(rowPosition,1).setIcon(QtGui.QIcon(each_div.findNext('img')['src']))
????
buf.close()
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())Tout le reste du code fonctionne même si là j'en ai enlevé une partie, mais rien à faire je n'arrive pas à afficher les images retournées dans ma deuxième colonne. les noms apparaissent bien dans la première. Les images sont bien trouvées car je peux les récupérer et les enregistrer sur mon disque.Quelqu'un aurait une idée ou un explication ? Merci beaucoup d'avance !
------------------------------
Hello everybody
I can not display images in the table with this code:
#!/usr/bin/python
# -*- coding: utf-8 -*-
from PyQt5 import QtWidgets
from PyQt5 import QtGui, QtCore
import sys
import mainwindow # import du fichier mainwindow.py généré par pyuic5
import pycurl
import cStringIO
import re
class MyWindow(QtWidgets.QMainWindow):
def __init__(self, parent=None):
QtWidgets.QMainWindow.__init__(self, parent)
self.ui = mainwindow.Ui_MainWindow()
self.ui.setupUi(self)
# un clic sur le bouton appellera la méthode 'action_bouton'
self.ui.pushButton_2.clicked.connect(self.action_bouton)
self.ui.tableWidget.setColumnCount(2)
header = self.ui.tableWidget.horizontalHeader()
header.setSectionResizeMode(0, QtWidgets.QHeaderView.ResizeToContents)
header.setSectionResizeMode(1, QtWidgets.QHeaderView.ResizeToContents)
def action_bouton(self):
print('Appui bouton.')
buf = cStringIO.StringIO()
ExampleVariable = 'TEST'
c = pycurl.Curl()
c.setopt(c.URL, 'URLTEST'+ExampleVariable+'URLTEST') #->OK
c.setopt(c.WRITEFUNCTION, buf.write)
c.perform()
from bs4 import BeautifulSoup
soup = BeautifulSoup(buf.getvalue(), "lxml")
for each_div in soup.findAll("div", {"class": "wrapper_product_1"}):
print each_div.findNext('img')['src'].encode('utf-8') #recup image -> OK
NameImage = each_div.findNext('img')['alt']
rowPosition = self.ui.tableWidget.rowCount()
self.ui.tableWidget.insertRow(rowPosition)
self.ui.tableWidget.setItem(rowPosition,0, QtWidgets.QTableWidgetItem(NameImage))
????
##self.tableWidget_SearchJeuQueG.setImage(rowPosition, 1, each_div.findNext('img')['src'])
##self.tableWidget_SearchJeuQueG.setItem(rowPosition , 1, QIcon("test.jpg"))
##self.tableWidget_SearchJeuQueG.item(rowPosition,1).setIcon(QtGui.QIcon(each_div.findNext('img')['src']))
????
buf.close()
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())All the rest of the code works even if I removed part of it, but nothing to do I can not display the images returned in my second column. the names appear well in the first. The images are well found because I can recover them and save them on my disk.Someone would have an idea or an explanation? Thank you very much in advance !
