title: Error "Object has no attribute" applied to status Bar does not show status
body: <p>I am trying to load and delete images when loading an image I create a status bar to tell me the name of the file and if I delete it, the bar is cleaned, I get this error and I do not know what it may be, luckily they load me the images but in the console, it throws me that error and it does not show me the status bar (I leave part of the code), thanks...</p>
  
  <p>Error</p>
  
  <blockquote>
    <p>Traceback (most recent call last):   File "lol.py", line 220, in
    
        self.animacionMostar.finished.connect(lambda: (self.statusBar.showMessage(nombre))) AttributeError:
    'VentanaVISUALIZAR' object has no attribute 'statusBar'</p>
  </blockquote>
  
  <p>Code:</p>
  
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-js lang-js prettyprint-override"><code>class VentanaVISUALIZAR(QDialog):
      def __init__(self, parent=None):
          super(VentanaVISUALIZAR, self).__init__()
  
          self.setWindowIcon(QIcon("icono.png"))
          self.setWindowTitle("Visualizador ")
          self.setWindowFlags(Qt.MSWindowsFixedSizeDialogHint)
          self.setFixedSize(1020, 680)
          
          
          self.widget() 
      def widget(self):
  
  # ===================== LLAMAR WIDGETS =======================
  
          framePrincipal = QFrame(self)
          framePrincipal.setFrameShape(QFrame.Box)
          framePrincipal.setFrameShadow(QFrame.Sunken)
          framePrincipal.setAutoFillBackground(True)
          framePrincipal.setBackgroundRole(QPalette.Light)
          framePrincipal.setFixedSize(1000, 560)
          framePrincipal.move(10, 10)
  
          frame = QFrame(framePrincipal)
          frame.setFixedSize(980, 540)
          frame.move(10, 10)
  
          self.labelImagen = QLabel(frame)
          self.labelImagen.setAlignment(Qt.AlignCenter)
          self.labelImagen.setGeometry(0, 0, 980, 540)
  
          self.labelImagenUno = QLabel(frame)
          self.labelImagenUno.setAlignment(Qt.AlignCenter)
          self.labelImagenUno.setGeometry(-970, 0, 980, 540)
          
                     
          
  # =================== BOTONES VISUALIZADOR ==================
          botonVCargar = QPushButton("Cargar Imagen", self)
          botonVCargar.setGeometry(QRect(10,590,325,30))
          botonVCargar.setIcon(QtGui.QIcon("cargar.png"))
          botonVCargar.setIconSize(QtCore.QSize(20,20))
          
          botonVEliminar = QPushButton("Eliminar Imagen", self)
          botonVEliminar.setGeometry(QRect(350,590,325,30))
          botonVEliminar.setIcon(QtGui.QIcon("borrar.png"))
          botonVEliminar.setIconSize(QtCore.QSize(20,20))
          
  #================== ACCIONES BOTONES VISUALIZADOR ===================
  
          
          botonVCargar.clicked.connect(self.Cargar)
          botonVEliminar.clicked.connect(self.Eliminar)
              
          posicion = int
          carpetaActual = QDir()
          imagenesCarpeta = []
      def bloquearBotones(self, bool):
          self.botonVCargar.setEnabled(bool)
          self.botonVEliminar.setEnabled(bool)
          
          
          
      def Mostrar (self, label, imagen, nombre, posicionX=970):
          imagen = QPixmap.fromImage(imagen)
  
      # Escalar imagen a 640x480 si el ancho es mayor a 640 o el alto mayor a 480
          if imagen.width() &gt; 980 or imagen.height() &gt; 540:
              imagen = imagen.scaled(980, 540, Qt.KeepAspectRatio, Qt.SmoothTransformation)
  
          # Mostrar imagen
          label.setPixmap(imagen)
  
          # Animación (al finalizar la animación se muestra en la barra de estado el nombre y la extensión de la imagen
          # y se desbloquean los botones).       
          self.animacionMostar = QPropertyAnimation(label, b"geometry")
          self.animacionMostar.finished.connect(lambda: (self.statusBar.showMessage(nombre)))
          self.animacionMostar.setDuration(200)
          self.animacionMostar.setStartValue(QRect(posicionX, 0, 960, 540))
          self.animacionMostar.setEndValue(QRect(0, 0, 960, 540))
          self.animacionMostar.start(QAbstractAnimation.DeleteWhenStopped)
          
          
      def Limpiar(self, labelConImagen, labelMostrarImagen, imagen, nombre,
              posicionInternaX, posicionX=None):
  
          def Continuar(estado):
              if estado:
                  if posicionX:
                      self.Mostrar(labelMostrarImagen, imagen, nombre, posicionX)
                  else:
                      self.Mostrar(labelMostrarImagen, imagen, nombre)
                  
          self.animacionLimpiar = QPropertyAnimation(labelConImagen, b"geometry")
          self.animacionLimpiar.finished.connect(lambda: labelConImagen.clear())
          self.animacionLimpiar.setDuration(200)
          # self.animacionLimpiar.valueChanged.connect(lambda x: print(x))
          self.animacionLimpiar.stateChanged.connect(Continuar)
          self.animacionLimpiar.setStartValue(QRect(0, 0, 980, 540))
          self.animacionLimpiar.setEndValue(QRect(posicionInternaX, 0, 980, 540))
          self.animacionLimpiar.start(QAbstractAnimation.DeleteWhenStopped)
  
      def Cargar(self):
          
          nombreImagen, _ = QFileDialog.getOpenFileName(self, "Seleccionar imagen",
                                                        QDir.currentPath(),
                                                        "Archivos de imagen (*.jpg *.png *.ico *.bmp)")
  
          if nombreImagen:
              # Verificar que QLabel tiene imagen
              labelConImagen = ""
              if self.labelImagen.pixmap():
                  labelConImagen = self.labelImagen
              elif self.labelImagenUno.pixmap():
                  labelConImagen = self.labelImagenUno
                      
              imagen = QImage(nombreImagen)
              if imagen.isNull():
                  if labelConImagen:
                      self.Eliminar()
                          
                  QMessageBox.information(self, "Visor de imágenes",
                                          "No se puede cargar %s." % nombreImagen)
                  return
                  
              # Obtener ruta de la carpeta que contiene la imagen seleccionada
              self.carpetaActual = QDir(QFileInfo(nombreImagen).absoluteDir().path())
  
              # Obtener la ruta y el nombre de las imagenes que se encuentren en la carpeta de
              # la imagen seleccionada
              imagenes = self.carpetaActual.entryInfoList(["*.jpg", "*.png", "*.ico", "*.bmp"],
                                                          QDir.Files, QDir.Name)
              self.imagenesCarpeta = [imagen.absoluteFilePath() for imagen in imagenes]
  
              self.posicion = self.imagenesCarpeta.index(nombreImagen)
  
              # Función encargada de bloquear o desbloquear los botones
              #self.bloquearBotones(False)
  
              # Nombre y extensión de la imagen
              nombre = QFileInfo(nombreImagen).fileName()
                  
              if labelConImagen:
                  posicionInternaX = -970
                  labelMostrarImagen = self.labelImagen if self.labelImagenUno.pixmap() else self.labelImagenUno
                  self.Limpiar(labelConImagen, labelMostrarImagen, imagen, nombre, posicionInternaX)
              else:
                  self.Mostrar(self.labelImagen, imagen, nombre)
          
  
  
      def Eliminar(self):
          def establecerValores():
              labelConImagen.clear()
              labelConImagen.move(0, 0)
  
              # Limpiar la barra de estado
              self.statusBar.clearMessage()
  
              # Establecer los valores predeterminados
              self.posicion = int
              self.estadoAnterior, self.estadoSiguiente = False, False
              self.carpetaActual = QDir()
              self.imagenesCarpeta.clear()
  
              #self.bloquearBotones(True)
                  
          # Verificar que QLabel tiene imagen
          labelConImagen = ""
          if self.labelImagen.pixmap():
              labelConImagen = self.labelImagen
          elif self.labelImagenUno.pixmap():
              labelConImagen = self.labelImagenUno
                      
          if labelConImagen:
              #self.bloquearBotones(False)
                  
              self.animacionEliminar = QPropertyAnimation(labelConImagen, b"geometry")
              self.animacionEliminar.finished.connect(establecerValores)
              self.animacionEliminar.setDuration(200)
              self.animacionEliminar.setStartValue(QRect(0, 0, 640, 480))
              self.animacionEliminar.setEndValue(QRect(-650, 0, 640, 480))
              self.animacionEliminar.start(QAbstractAnimation.DeleteWhenStopped)
          
                   </code></pre>
  </div>
  </div>
  </p>