Python TUI-Bibliotheken [geschlossen]

8

Ich schreibe ein kleines Sudoku-Spiel / Solver in Linux mit Python mit TUI (nicht GUI, das ist nur lahm) nur zum Spaß. Meine Frage ist, welche lib ist besser (damit meine ich leichter zu handhaben, bessere Unterstützung, direkter und verständlicher), die Auswahlmöglichkeiten sind Flüche oder urwid oder wenn jemand bessere Suggien hat, und warum? Ich habe einige Erfahrungen mit Tkinter und wxPython.

Jede Hilfe oder Information wird geschätzt.

    
lllluuukke 08.05.2012, 21:36
quelle

3 Antworten

9

Sie können Unicurses ausprobieren, das das Python-Core-Curses-Modul in UNIX-Systeme umschließt und die kostenlose pdcurses-Bibliothek umschließt auf Windows-basierten Maschinen.

Diese Bibliothek wurde entwickelt, um die Syntax und den Stil der ursprünglichen ncurses-Bibliothek zu emulieren. Wenn Sie also daran interessiert sind, TUI-Design mit der Programmierung im Fluch-Stil zu lernen, sollten Sie es ausprobieren.

Urwid ist, von der kleinen Dokumentation, die ich gelesen habe, eine sehr interessante Bibliothek, die Ereignisschleifen verwendet (die Reaktormuster ) als Grundlage für das Anwendungsdesign, ähnlich wie tkinter oder Twisted. Außerdem hat urwid eine Event-Loop-Klasse, die speziell für die Verwendung mit Twisted entwickelt wurde. Wenn Sie also TUIs für die Verwendung über Netzwerke erstellen möchten, ist dies eine gute Wahl. Twisted verwendet auch das Reaktormuster, also wenn Sie diesen Stil lernen möchten, würde ich es empfehlen.

Wenn Sie schließlich eine ncurses-ähnliche Bibliothek verwenden, lesen Sie Dan Gookins Buch über ncurses . Eine sehr gute Quelle, und die einzige, von der ich weiß, ist heute gedruckt.

Es gibt andere Optionen wie newt , pygcurses und so weiter, aber dies sollte Ihnen den Einstieg erleichtern. Viel Glück, TUI-Programmierung ist heute einer jener technologischen Fetische, die schwer zu durchbrechen sind, aber es lohnt sich.

    
Chazu 10.05.2012, 14:11
quelle
4

Obwohl das oben Gesagte eine durchaus vernünftige Lösung für Linux ist, bat das OP um weitere Vorschläge und eine Begründung für sie.

Wer möchte eine Low-Level-API wie Fluch in einer modernen OO-Sprache wie Python verwenden? Ganz zu schweigen davon, wenn Sie in Windows stecken (was das OP nicht ist, aber für viele Leute da draußen ein Problem ist) ... Es muss einen besseren Weg geben.

Um zu versuchen, dies zu lösen, habe ich eine einfache Cross-Plattform-Klasse zusammengestellt (yup - Windows ist enthalten, ohne auf PDcurses zurückzugreifen), um all die Dinge zu tun, die die meisten Leute von ihrem Terminal / Konsole wollen. Wenn Sie Linux verwenden, ist dies eine menschliche Art, Flüche zu programmieren. Wenn Sie unter Windows arbeiten, funktioniert dieselbe Klasse wie ohne externe binäre Abhängigkeiten. Sie finden die Screen-Klasse in Ссылка .

Zusätzlich habe ich eine Menge von High-Level-Objekten erstellt, um Animationen und TUIs zu erstellen. Dies ist beispielsweise eine Aufzeichnung eines Beispiels mit den TUI-Widgets:

Wenn es eine zusätzliche Funktion gibt, die Sie brauchen, lassen Sie es mich wissen und ich werde sehen, was ich tun kann.

    
Peter Brittain 14.06.2015 22:39
quelle
1

Wenn Ihr Spiel in einer Konsole läuft, wählen Sie Flüche .

Wenn Ihr Spiel als GUI-Anwendung ausgeführt wird, wählen Sie PySide .

    
fviktor 08.05.2012 22:26
quelle

Tags und Links