Buscamos por distintos sitios y así darte la solución para tu duda, si tienes alguna pregunta déjanos la pregunta y contestamos con mucho gusto.
from PyQt4 import QtGui
import sys
imagePath = "enter the path to your image here"
class ImgWidget1(QtGui.QLabel):
def __init__(self, parent=None):
super(ImgWidget1, self).__init__(parent)
pic = QtGui.QPixmap(imagePath)
self.setPixmap(pic)
class ImgWidget2(QtGui.QWidget):
def __init__(self, parent=None):
super(ImgWidget2, self).__init__(parent)
self.pic = QtGui.QPixmap(imagePath)
def paintEvent(self, event):
painter = QtGui.QPainter(self)
painter.drawPixmap(0, 0, self.pic)
class Widget(QtGui.QWidget):
def __init__(self):
super(Widget, self).__init__()
tableWidget = QtGui.QTableWidget(10, 2, self)
tableWidget.setCellWidget(0, 1, ImgWidget1(self))
tableWidget.setCellWidget(1, 1, ImgWidget2(self))
if __name__ == "__main__":
app = QtGui.QApplication([])
wnd = Widget()
wnd.show()
sys.exit(app.exec_())
Dos formas de hacerlo, ya que solicitaste el painEvent.
Créditos: http://www.mail-archive.com/[email protected]/msg01259.html
Espero que esto ayude.
Editar: Se agregó la solución solicitada usando una subclase QTableWidget.
from PyQt4 import QtGui
import sys
class ImageWidget(QtGui.QWidget):
def __init__(self, imagePath, parent):
super(ImageWidget, self).__init__(parent)
self.picture = QtGui.QPixmap(imagePath)
def paintEvent(self, event):
painter = QtGui.QPainter(self)
painter.drawPixmap(0, 0, self.picture)
class TableWidget(QtGui.QTableWidget):
def setImage(self, row, col, imagePath):
image = ImageWidget(imagePath, self)
self.setCellWidget(row, col, image)
if __name__ == "__main__":
app = QtGui.QApplication([])
tableWidget = TableWidget(10, 2)
tableWidget.setImage(0, 1, "")
tableWidget.show()
sys.exit(app.exec_())
Encuentro que esta solución es amable con mi mente de principiante:
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
class KindForMind(object):
def THINK(self, PLEASE):
self.table = QtWidgets.QTableWidget()
pic = QtGui.QPixmap("your_image.jpg")
self.label = QtWidgets.QLabel(PLEASE)
self.label.setPixmap(pic)
self.table.setCellWidget(0,0, self.label)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
PLEASE = QtWidgets.QWidget()
ui = KindForMind()
ui.THINK(PLEASE)
PLEASE.show()
sys.exit(app.exec_())
Comentarios y valoraciones
Si guardas algún enigma o forma de renovar nuestro enunciado te recordamos dejar una apostilla y con mucho placer lo interpretaremos.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)