2011-12-25 15 views
5

Estoy escribiendo un visor hexadecimal basado en texto para la diversión y la utilidad (tengo la intención de agregar resaltado de sintaxis para muchos tipos de archivos diferentes), y me pregunto si hay kits de herramientas de maldiciones que pueda usar.¿Existen bibliotecas de kits de herramientas para curses con enlaces de Python?

Probablemente escribiré algo para familiarizarme con la forma en que funcionan los kits de herramientas GUI, pero sería bueno saber de bibliotecas útiles para referencia futura para mí y para otros.

Respuesta

8

Urwid es la mejor biblioteca para trabajar con maldiciones y pitones que conozco.

Altenativamente, usted podría ser también de interés snack (newt -based library).

Para obtener más información, echa un vistazo a este question.

0

En GitHub hay una biblioteca de GUI de alto nivel, de libre uso, estudio, modificación y distribución, en "https://github.com/rigordo959/tsWxGTUI_PyVx_Repository".

Se implementa en Python 2x & 3x utilizando el paquete de GUI de bajo nivel "curses".

Sus programas de aplicación se pueden programar utilizando un subconjunto en modo de caracteres de la API GUI de alto nivel "wxPython" en modo de píxeles. Admite pantallas con entrada de teclado y mouse y varios emuladores de terminal, incluidos los xterms de color (8 colores con pares de 64 colores y 16 colores con pares de 256 colores) y vt100/vt220 sin color.

+0

Ya que parece que es el código - lo que realmente necesita algunos ejemplos de código mal, y honestamente, el nombre de recompra es una especie de desagradable también. De cualquier manera, gracias por la respuesta y bienvenido a Stack Overflow :) – Llamageddon

+0

Sí, es mi código y en el repositorio de GitHub encontrará no solo el código fuente de la API, sino también los ejemplos utilizados para probarlo y demostrarlo. Como emulo la API de wxPython, puede consultar la introducción y el tutorial de wxPython. My Announcement proporciona una descripción general de la distribución y su uso. El código Python 2x es grande y complejo (más de 100.000 líneas de Python ejecutable. My Brochure proporciona capturas de pantalla; Mis cuadernos incluyen una introducción y especificación de estilo de ingeniería, diseño y documentos de usuario. –

1

npyscreen

Npyscreen es una librería de widgets pitón y marco de aplicación para las aplicaciones del terminal de programación o de consola. Está construido sobre ncurses, que es parte de la biblioteca estándar.

npyscreen screenshot

#!/usr/bin/env python 
# encoding: utf-8 

import npyscreen 
class TestApp(npyscreen.NPSApp): 
    def main(self): 
     # These lines create the form and populate it with widgets. 
     # A fairly complex screen in only 8 or so lines of code - a line for each control. 
     F = npyscreen.Form(name = "Welcome to Npyscreen",) 
     t = F.add(npyscreen.TitleText, name = "Text:",) 
     fn = F.add(npyscreen.TitleFilename, name = "Filename:") 
     fn2 = F.add(npyscreen.TitleFilenameCombo, name="Filename2:") 
     dt = F.add(npyscreen.TitleDateCombo, name = "Date:") 
     s = F.add(npyscreen.TitleSlider, out_of=12, name = "Slider") 
     ml = F.add(npyscreen.MultiLineEdit, 
       value = """try typing here!\nMutiline text, press ^R to reformat.\n""", 
       max_height=5, rely=9) 
     ms = F.add(npyscreen.TitleSelectOne, max_height=4, value = [1,], name="Pick One", 
       values = ["Option1","Option2","Option3"], scroll_exit=True) 
     ms2= F.add(npyscreen.TitleMultiSelect, max_height =-2, value = [1,], name="Pick Several", 
       values = ["Option1","Option2","Option3"], scroll_exit=True) 

     # This lets the user interact with the Form. 
     F.edit() 

     print(ms.get_selected_objects()) 

if __name__ == "__main__": 
    App = TestApp() 
    App.run() 
Cuestiones relacionadas