2011-12-25 15 views
5

Sto scrivendo un visualizzatore esadecimale basato sul testo per divertimento e utilità (intendo aggiungere l'evidenziazione della sintassi per molti tipi di file diversi) e mi chiedo se non ci siano curses toolkit che potrei usare.Esistono librerie di kit di strumenti per le maledizioni con collegamenti Python?

Probabilmente scriverò qualcosa anch'io per familiarizzare con il modo in cui funzionano gli strumenti di gui, ma sarebbe bello sapere delle utili librerie per riferimenti futuri per me stesso e gli altri.

risposta

8

Urwid è la migliore libreria per lavorare con curses e python che conosco.

In alternativa, è possibile trovare anche interessanti snack (libreria newt).

Per ulteriori informazioni, si prega di dare un'occhiata a questo question.

0

Su GitHub è disponibile una libreria GUI di alto livello libera da utilizzare, studiare, modificare e ridistribuire a "https://github.com/rigordo959/tsWxGTUI_PyVx_Repository".

È implementato in Python 2x & 3x utilizzando il pacchetto GUI di livello basso "curses".

I programmi applicativi possono essere programmati utilizzando un sottoinsieme in modalità carattere dell'API di alto livello "wxPython" in modalità pixel. Supporta display con input da tastiera e mouse e vari emulatori di terminali inclusi i colori xterm (8 colori con coppie di 64 colori e 16 colori con coppie di 256 colori) e non colore vt100/vt220.

+0

Poiché sembra come se fosse il proprio codice - di cui ha bisogno in realtà alcuni esempi di codice male, e onestamente, il nome di pronti contro termine è una specie di scoraggiante pure. In ogni caso, grazie per la risposta, e benvenuti a Stack Overflow :) – Llamageddon

+0

Sì, è il mio codice e nel repository GitHub troverete non solo il codice sorgente per l'API ma anche quello per gli esempi utilizzati per testarlo e dimostrarlo. Poiché sto emulando l'API wxPython, puoi guardare l'introduzione e il tutorial per wxPython. Il mio annuncio fornisce una panoramica della distribuzione e del suo utilizzo. Il codice Python 2x è ampio e complesso (oltre 100.000 linee di Python eseguibili.) La mia brochure offre schermate, i miei notebook includono un'introduzione e specifiche di stile ingegneristico, documenti di progettazione e utente. –

1

npyscreen

Npyscreen è una libreria di widget pitone e application framework per le applicazioni terminale di programmazione o console. È costruito su ncurses, che fa parte della libreria standard.

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()