7 votos

¿Cómo borrar la consola de Python en QGIS?

Después de ejecutar varios centenares de líneas de comandos (y obtener sus consiguientes declaraciones de error...), es agradable poder borrar la ventana de la consola y empezar de cero.

En la ventana de la consola de Python en QGIS, me gustaría borrarla. Si la cierro y la vuelvo a abrir, el buffer se mantiene. Si 'selecciono todo' y borro el contenido, no obtengo un aviso y no puedo hacer nada para recuperar uno.

¿Alguna sugerencia sobre cómo borrar el búfer de desplazamiento hacia atrás?

0 votos

Si puedo preguntar: ¿Por qué? No creo que esté implementado, pero puedes abrir una solicitud de mejora. (Sin embargo, prepárate para responder a la pregunta anterior).

0 votos

@underdark: Para que sepas hasta dónde desplazarte después de ejecutar el siguiente comando.

0 votos

@underdark Creo que tienes razón. Creo que tenía dos cosas en mente. La primera es conseguir una ventana limpia, pero eso se puede conseguir con un montón de /n o returns. La segunda cosa que estaba pensando era del'ing todas las variables / objetos que se habían creado a través de la consola. Estaba tratando de probar algún código, pero se vio afectado por un valor existente para una variable compartida. Supongo que esta es la diferencia entre ejecutar un shell independiente vs abrir y cerrar la consola en una aplicación que sigue ejecutándose.

8voto

Jauder Ho Puntos 3172

Ok, he estado jugando con QGIS console.py para ver si se puede hacer esto por sí mismo y resulta ser bastante fácil.

Abre console.py que, si has instalado usando OSGeo4W, está en C:\OSGeo4W\apps\qgis\python\qgis. A continuación, busque el método python llamado def entered(self): y sustituirlo por lo siguiente:

def entered(self):
    self.cursor.movePosition(QTextCursor.End, QTextCursor.MoveAnchor)
    self.setTextCursor(self.cursor)
    command = unicode(self.currentCommand())
    if command == 'clear':
        self.clearConsole()
    else:
        self.runCommand(command)

también añadir el siguiente método después del método introducido:

def clearConsole(self):
      self.clear()
      self.insertTaggedText("To access Quantum GIS environment from this console\n"
                          "use qgis.utils.iface object (instance of QgisInterface class).\n"
              "\n", ConsoleHighlighter.INIT)
      self.displayPrompt(False)

Guarde console.py y cierre, y reinicie QGIS.

El clearConsole borrará la ventana de la consola y la devolverá tal y como estaba al abrirla por primera vez cuando el clear se introduce en la ventana.

Sin embargo, esto no borra el historial, ni reinicia ninguna variable, pero no me gustaría que lo hiciera si lo estuviera usando.

Espero que esto te ayude con lo que necesitas.

EDITAR: A partir de la versión 1.7, la consola de Python incorpora esta función. Basta con llamar a qgis.console.clearConsole() en la consola de Python para borrarlo.

2 votos

¡Bien hecho Nathan!

1 votos

@Nathan: Usando QGIS 2.6.0, estoy tratando de borrar la consola desde dentro de mi plugin [para ayudar a la depuración, imprimiendo, básicamente para auto-borrar la consola a medida que vuelvo a ejecutar el código]. He buscado el qgis.console.clearConsole() código dentro de la API, y he probado variantes de la línea sin éxito, por no hablar de intentar decidir qué importación[s] añadir a mi código. A lo mejor de mi búsqueda, no veo ese objeto o uso -- ¿Estoy malinterpretando su editar de mayo de 2011, para su sugerencia de "clearConsole"?

0 votos

Veo un def clearConsole dentro de un módulo de python llamado console_output.py en la línea 199 pero, habiéndolo encontrado, no tengo ni idea de cómo acceder/ejecutarlo. Tampoco sé cómo forzar la "acción" que aparece dentro del módulo console.py, relativa a la limpieza de la consola. Sigo atascado....

4voto

user2366975 Puntos 252

En la versión 3.22 de QGIS, hay un botón en la parte superior izquierda de la consola que la borra.

enter image description here

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X