IIC2233 / Syllabus-2022-1

Repositorio oficial del curso IIC2233 Programación Avanzada 🚀✨
https://iic2233.ing.puc.cl/
45 stars 40 forks source link

Problemas visualizar imagen con qlabel (contenido semana 07) #140

Open tzehnder opened 2 years ago

tzehnder commented 2 years ago

Prerrequisitos

(Marcar colocando una X entre los corchetes los ítems que ya hiciste, así: "[X]")

Duda

Hola lei la issue anterior sobre este problema y revise mi escritorio, los path estan correctos, intente de ambas formas dejando el archivo de la imagen dentro de la misma carpeta, dejando solo el bombre de la foto dentro del path.join() y como se hace en el notebook jupyter numero 2 de la semana 07, que era con una carpeta llamada img. En ambos casos no logro visualizar la imagen en mi ventana, despues cuando habia que hacer el ejercicios propuesto 3.2 de la semana 07 tampoco logre visualizar el cuadrado. He buscado en la web pero no he encontrado como solucionar el problema. Adjunto el codigo a continuacion, es el mismo que utilizan en el notebook que mencione solo que lo ejecuto en un archivo .py.

`

def __init__(self, *args, **kwargs):
    super().__init__(*args, **kwargs)
    self.init_gui()

def init_gui(self):
    """
    Este método inicializa la interfaz y todos sus widgets.
    """

    # Ajustamos la geometría de la ventana y su título
    self.setGeometry(200, 100, 600, 600)
    self.setWindowTitle('Ventana con imagen')

    # Creamos el QLabel que contendrá la imagen y definimos su tamaño
    self.label = QLabel(self)
    self.label.setGeometry(50, 50, 100, 100)

    # Escribimos la ruta al archivo que contiene la imagen.
    # La imagen obtenida en https://en.wikipedia.org/wiki/Python_(genus)
    ruta_imagen = os.path.join('img', 'python.jpg')

    # Cargamos la imagen como pixeles 
    pixeles = QPixmap(ruta_imagen)

    # Agregamos los pixeles al elemento QLabel
    self.label.setPixmap(pixeles)

    # Finalmente, ajustamos tamaño de contenido al tamaño del elemento (100 x 100)
    self.label.setScaledContents(True)

    # Una vez que fueron agregados
    # todos los elementos a la ventana la
    # desplegamos en pantalla
    self.show()`
tzehnder commented 2 years ago

logre solucionarlo si ejecuto el codigo desde el cmd de windows y no desde visual studio, dejare el issue igualmente por si a alguien le sirve.

diegocostares commented 2 years ago

Hola @tzehnder Si solo te funciona desde la terminal significa que tu ruta_imagen probablemente no este adaptada a vscode, considera abrir directamente la carpeta de tu programa y modificarla (Haciendo click derecho en un archivo puedes copiar el path relativo y comprobar que está acorde con lo que ingresaste)