def buscar(self, ev=None):
        """
        Busca dentro del contenedor seleccionado.
        @type    self: VentanaPrincipal
        @param    self: referencia al objeto VentanaPrincipal actual
        
        @type    ev: QMouseEvent 
        @param    ev: evento del raton al aplicar sobre el boton
        """
        if len(self._sele) != 0:
            if isinstance(self._sele[0], IAbrir):
                art1 = self._logico._articulo.get(self._logico._genero.get(self._sele[0].getNombre()))
                # comando = str("abro " + art1 + " " + self._sele[0].getNombre())
                action = IAccion(
                    verbo="abro", imagen="imagenes/acciones/abrir.png", comando="{verbo} {articulo0} {objeto0}"
                )
                action.articulos.append(art1)
                action.objetos.append(self._sele[0].getNombre())
                self._logico.runCommand(str(action.getComando()))
                # print "\n (y) " + comando

                # Crear item del log
                self.addLogItem(action)

                # Refrescar la vista
                self.refresca_grafico()
            else:
                self.messageDialog("Ese objeto no puede abrirse.", "Warning")
        else:
            self.errorDialog("No hay objeto seleccionado,\n por tanto no se puede buscar nada", "Warning")
            print " (!) No hay objeto seleccionado, por tanto no se puede buscar nada"
    def mover(self, ev=None):
        """
        Mueve al Heroe hacia el objeto seleccionado.
        @type    self: VentanaPrincipal
        @param    self: referencia al objeto VentanaPrincipal actual
        
        @type    ev: QMouseEvent 
        @param    ev: evento del raton al aplicar sobre el boton
        """
        if len(self._sele) != 0:

            art1 = self._logico._articulo.get(self._logico._genero.get(self._sele[0].getNombre()))
            action = None
            action = IAccion(
                verbo="moverse a", imagen="imagenes/acciones/Moverse a.png", comando="{verbo} {articulo0} {objeto0}"
            )
            action.articulos.append(art1)
            action.objetos.append(self._sele[0].getNombre())
            self._logico.runCommand(str(action.getComando()))
            # print "\n (y) " + comando

            # Crear item del log
            self.addLogItem(action)

            # Refrescar la vista
            self.refresca_grafico()
            self._lbl_heroe.move(self._logico._heroe.getX(), self._logico._heroe.getY())
        else:
            self.messageDialog("No hay objeto seleccionado,\n por tanto no se puede mover al heroe", "Warning")
            print "No hay objeto seleccionado, por tanto no se puede mover al heroe"
    def ligar(self, ev=None):
        """
        Agrega en la Mochila del Heroe un objeto seleccionado.
        @type    self: VentanaPrincipal
        @param    self: referencia al objeto VentanaPrincipal actual
        
        @type    ev: QMouseEvent 
        @param    ev: evento del raton al aplicar sobre el boton
        """
        if len(self._sele) != 0:

            art1 = self._logico._articulo.get(self._logico._genero.get(self._sele[0].getNombre()))
            action = None
            action = IAccion(
                verbo="agarro", imagen="imagenes/acciones/Agarrar.png", comando="{verbo} {articulo0} {objeto0}"
            )
            action.articulos.append(art1)
            action.objetos.append(self._sele[0].getNombre())

            # comando = str("agarro " + art1 + " " + self._sele[0].getNombre())
            self._logico.runCommand(str(action.getComando()))

            # Crear item del log
            self.addLogItem(action)

            # print "\n (y) " + comando

            # Deseleccionar
            while len(self._sele) != 0:
                self._sele.pop()

            # Refrescar la vista
            self.refresca_grafico()

        else:
            self.messageDialog("No hay objeto seleccionado,\n por tanto no se puede agarrar nada", "Warning")
            print " (!) No hay objeto seleccionado, por tanto no se puede ligar nada"
    def dligar(self, ev=None, action=None):
        """
        Desliga un objeto del Heroe (lo saca de la mochila)
        @type    self: VentanaPrincipal
        @param    self: referencia al objeto VentanaPrincipal actual
        
        @type    ev: QMouseEvent 
        @param    ev: evento del raton al aplicar sobre el boton
        """
        if len(self._sele_mochila) != 0:

            if len(self._sele) != 0:
                art1 = self._logico._articulo.get(self._logico._genero.get(self._sele_mochila[0].getNombre()))
                art2 = self._logico._articulo.get(self._logico._genero.get(self._sele[0].getNombre()))
                action = None
                action = IAccion(
                    verbo="dejo",
                    imagen="imagenes/acciones/soltar.png",
                    comando="{verbo} {articulo0} {objeto0} en {articulo1} {objeto1}",
                )
                action.articulos.append(art1)
                action.articulos.append(art2)
                action.objetos.append(self._sele_mochila[0].getNombre())
                action.objetos.append(self._sele[0].getNombre())

                # comando = str("dejo " + art1 + " " + self._sele_mochila[0].getNombre() + " en " + art2 + " " + self._sele[0].getNombre())
                # print comando
                self._logico.runCommand(str(action.getComando()))

                # Crear item del log
                logItem = QtGui.QTreeWidgetItem(self.Log_treeWidget)
                self.addLogItem(action)

                # Vaciar el elemento seleccionado de la mochila
                while len(self._sele_mochila) != 0:
                    self._sele_mochila.pop()

                # Refrescar la vista
                self.refresca_grafico()

            else:
                art1 = self._logico._articulo.get(self._logico._genero.get(self._sele_mochila[0].getNombre()))
                # comando = str("dejo " + art1 + " " + self._sele_mochila[0].getNombre())
                action = None
                action = IAccion(
                    verbo="dejo", imagen="imagenes/acciones/soltar.png", comando="{verbo} {articulo0} {objeto0}"
                )
                action.articulos.append(art1)
                action.objetos.append(self._sele_mochila[0].getNombre())

                self._logico.runCommand(str(action.getComando()))

                # Crear item del log
                logItem = QtGui.QTreeWidgetItem(self.Log_treeWidget)
                self.addLogItem(action)

                # Vaciar el elemento seleccionado de la mochila
                while len(self._sele_mochila) != 0:
                    self._sele_mochila.pop()

                # Refrescar la vista
                self.refresca_grafico()

        else:
            self.messageDialog("No has seleccionado un objeto que soltar", "Warning")
            print "No hay objeto (u objetivo) seleccionado, por tanto no se puede desligar nada"