Curses

Hier werden alle anderen GUI-Toolkits sowie Spezial-Toolkits wie Spiele-Engines behandelt.
bmh1980
gelöscht
Beiträge: 60
Registriert: Montag 26. Januar 2004, 17:13
Kontaktdaten:

Curses

Beitragvon bmh1980 » Sonntag 13. Februar 2005, 22:00

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
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Montag 14. Februar 2005, 14:23

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 :)
Zuletzt geändert von Leonidas am Freitag 4. März 2005, 21:28, insgesamt 1-mal geändert.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
bmh1980
gelöscht
Beiträge: 60
Registriert: Montag 26. Januar 2004, 17:13
Kontaktdaten:

Beitragvon bmh1980 » Freitag 4. März 2005, 21:24

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.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Freitag 4. März 2005, 21:33

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
bmh1980
gelöscht
Beiträge: 60
Registriert: Montag 26. Januar 2004, 17:13
Kontaktdaten:

Beitragvon bmh1980 » Sonntag 6. März 2005, 11:33

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!

Wer ist online?

Mitglieder in diesem Forum: Google [Bot]