Seite 1 von 1

Curses

Verfasst: Sonntag 13. Februar 2005, 22:00
von bmh1980
Hallo.

Hab keine Ahnung, ob ich bei GUIs mit Curses richtig bin. Aber irgendwie ist es ja auch ein GUI-Toolkit. Irgendwie! :?

Na, ja. Halt mal meine ganz unverschämte Frage. Ist hier jemand, der mir das curses-Modul von Python mal erklären könnte?

Habe schon diverse Doku und Beispiele, in Englisch und Deutsch gelesen. Aber wirklich verstehen tu ich das nicht. :(

Grüße
Marcus

Verfasst: Montag 14. Februar 2005, 14:23
von Leonidas
Es müsste dir erst mal klar sein, das Curses unter Windows nicht gehen.
Ein nettes Beispiel zu curses:

Code: Alles auswählen

#!/usr/bin/python
import curses
# Die Instanz, die wir jetzt benutzen werden
screen = curses.initscr()
# nun noch einige Standardeinstellungen

curses.nonl()
curses.noecho()
curses.cbreak()

screen.clear()
screen.move(1, 1)
screen.addstr("Druecke einmal die zu untersuchende Sondertaste und dann <q>")
screen.refresh()

x = []

while 1:
    c = screen.getch()
    if c == ord('q'): break # Exit the while()
    x.append(c)

curses.noecho()
screen.move(3, 1)
screen.addstr('folgende Bytes wurden empfangen: ' + str(x))
screen.move(5, 1)
screen.addstr('beenden mit <Enter>')
screen.refresh()

# abwarten

a = screen.getch()

# Werte zurücksetzen

curses.echo()
curses.nocbreak()
curses.endwin()
Du kannst deine Frage spezifischer stellen, was genau du nicht verstehst. Cursese ist schon genz nett, zugegeben. Erinnert mich an Pascals crt Modul :)

Verfasst: Freitag 4. März 2005, 21:24
von bmh1980
Danke für den Auszug. Das Beispiel kannte ich aber schon.

Und leider versteh ich da so gut wie gar nichts. :(

Ich kann halt auch keine genau Frage stellen, da ich ja schon das Grundprinzip nicht verstehe.

Dieses Ganze noecho, move, cbbreak & co. ergibt für mich so auf Anhieb gar keinen Sinn.

So gings mir am Anfang auch mit PyGTK und Tkinter. Hab aber zu beiden Toolkits ein Buch und konnte mich somit langsam vorran arbeiten.

Kennst du (c)dialog?

So dachte ich, sehen die curses-Widgets aus. Sofern man da überhaupt etwas als Widget bezeichnen kann.

Aber das Beispiel hat herzlich wenig damit zu tun. Und die Hilfe in Python zu curses ist eher noch verwirrender.

Verfasst: Freitag 4. März 2005, 21:33
von Leonidas
bmh1980 hat geschrieben:Dieses Ganze noecho, move, cbbreak & co. ergibt für mich so auf Anhieb gar keinen Sinn.
Ich denke, du hast curses nicht verstanden. curses ermöglicht es dir den Cursor in der Shell zu steuern und Farben zu malen. Also zum Beipiel diese Prozentanzeigen, die sich inplace Aktualisieren. Weil normalerweise kannst du zB. Text, den du mit print ausgegeben hast, nicht wieder rückgangignehmen.
bmh1980 hat geschrieben:Kennst du (c)dialog?

So dachte ich, sehen die curses-Widgets aus. Sofern man da überhaupt etwas als Widget bezeichnen kann.
Nein, dazu brauchst du Python Dialog.

Verfasst: Sonntag 6. März 2005, 11:33
von bmh1980
Leonidas hat geschrieben:Ich denke, du hast curses nicht verstanden.
Genau deshalb hab ich ja den Thread begonnen. Allerdings ist mir später dann erst in den Sinn gekommen, dass curses ja vielleicht gar nicht das ist, was ich gedanklich gesucht habe.
Leonidas hat geschrieben:Nein, dazu brauchst du Python Dialog.
Genau das ist es, was ich gesucht habe. Danke!