dabear Skrevet 13. august 2005 Del Skrevet 13. august 2005 Viss jeg har følgende: confirmed = str(raw_input('do you want to do this? (y or n')).lower() Hvordan kan jeg få innholdet i confirmed direkte fra kommandolinja uten at brukeren trenger å trykke «enter»? Lenke til kommentar
A_N_K Skrevet 13. august 2005 Del Skrevet 13. august 2005 Du må vel bruke en modul for å fange opp tastetrykk ubufret, curses f.eks? Lenke til kommentar
dabear Skrevet 13. august 2005 Forfatter Del Skrevet 13. august 2005 Vel curses hadde ufattelig mange metoder og konstanter. Du kunne ikke kommet med en metode eller et eksempel jeg kan bruke? Lenke til kommentar
A_N_K Skrevet 14. august 2005 Del Skrevet 14. august 2005 (endret) Har ikke brukt curses selv (gjør lite konsoll-programmering), men det finnes da en guide. Utdrag: Applications will also commonly need to react to keys instantly, without requiring the Enter key to be pressed; this is called cbreak mode, as opposed to the usual buffered input mode. curses.cbreak() Edit: Håper det hjalp? :_) Endret 14. august 2005 av A_N_K Lenke til kommentar
dabear Skrevet 14. august 2005 Forfatter Del Skrevet 14. august 2005 Takk, det hjalp litt, men så var det hvordan jeg hindrer programmet i å skape en «ny skjerm». Eventuelt hvordan jeg skriver til den nye skjermen som dukker opp. Med print fikk jeg det ikke til. #! /usr/bin/python # -*- coding: iso-8859-15 -*-s import curses #dette ses kun når programmet slutter av print '(y or n )?' #programmet «lager» en ny skjerm, hvordan hindre det? stdscr = curses.initscr() curses.echo() curses.cbreak() print 'dette vises ikke i det heletatt :(' while 1: c = stdscr.getch() if c: #avslutter curses.nocbreak(); stdscr.keypad(0); curses.echo();curses.endwin() if c == ord('y'): print 'you said yes' elif c == ord('n'): print 'you said no, exiting' else: print "you said something bogus :(" break Lenke til kommentar
A_N_K Skrevet 14. august 2005 Del Skrevet 14. august 2005 Vel, seksjon 4 i guiden heter 'Displaying Text'. Det må da være et hint? Lenke til kommentar
dabear Skrevet 14. august 2005 Forfatter Del Skrevet 14. august 2005 Vel, ok- jeg overså visst det. Jeg fikk det til som jeg ville nå, men det ville vært mye enklere viss jeg kunne gjort det direkte i «samme terminal» og bruke print istedet for stdscr.addstr() . Det jeg kom fram til #! /usr/bin/python # -*- coding: iso-8859-15 -*-s import curses import sys print 'entering program called with `%s`' % (sys.argv[0]) #programmet «lager» en ny skjerm, hvordan hindre det? stdscr = curses.initscr() curses.echo() curses.cbreak() stdscr.addstr('y or n?\n') while 1: c = stdscr.getch() if c: if c == ord('y'): stdscr.addstr('you said yes') elif c == ord('n'): stdscr.addstr(' you said no, exiting') else: stdscr.addstr('you said something bogus :(') break curses.nocbreak(); stdscr.keypad(0); curses.echo();curses.endwin() print 'quiting, bye bye. see you later aligator!' #avslutter Lenke til kommentar
A_N_K Skrevet 15. august 2005 Del Skrevet 15. august 2005 Jeg har ikke så voldsomt peiling på curses, som sagt driver jeg lite med konsollprogrammering. Kanskje noen andre som vet? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå