Ben basmasını gerektirmeyen bir menü yaparım'ı [girin] Bir seçim yapmak için?

oy
23

Python içinde bir menü var. O kısmı kolaydı. Ben kullanıyorum raw_input()kullanıcıdan seçimini alır.

Sorun olduğunu raw_input(ve giriş) basmasını gerektirir Enteronlar Seçiminizi yaptıktan sonra. Bir tuş hemen sonra programın davranmasını sağlamak için herhangi bir yolu var mı? İşte ben bugüne kadar bu var:

import sys
print Menu
1) Say Foo
2) Say Bar
answer = raw_input(Make a selection> )

if 1 in answer: print foo
elif 2 in answer: print bar

Aşağıdaki gibi bir şey olması harika olurdu

print menu
while lastKey = :
    lastKey = check_for_recent_keystrokes()
if 1 in lastKey: #do stuff...
Oluştur 05/08/2008 saat 03:39
kaynak kullanıcı
Diğer dillerde...                            


4 cevaplar

oy
9

Windows'ta:

import msvcrt
answer=msvcrt.getch()
Cevap 05/08/2008 saat 04:11
kaynak kullanıcı

oy
9

Linux'ta:

  • set ham mod
  • seçip tuş okumak
  • Normal ayarlarını geri
import sys
seçme ithalat
ithalat termios
ithalat tty

def GETKEY ():
    old_settings = termios.tcgetattr (sys.stdin)
    tty.setraw (sys.stdin.fileno ())
    select.select ([sys.stdin], [], [], 0)
    Cevap = sys.stdin.read (1)
    termios.tcsetattr (sys.stdin, termios.TCSADRAIN, old_settings)
    dönüş cevap

print "" "Menü
1) ki Foo
2) " "Bar" deyin

) (= Getkey cevap

print "foo": "1" yanıtında ise
yanıtında elif "2": print "çubuk"

Cevap 05/08/2008 saat 03:54
kaynak kullanıcı

oy
4

Vay, bu sonsuza kadar sürdü. Tamam, burada ben ile sona erdi buydu

#!C:\python25\python.exe
import msvcrt
print """Menu
1) Say Foo 
2) Say Bar"""
while 1:
    char = msvcrt.getch()
    if char == chr(27): #escape
        break
    if char == "1":
        print "foo"
        break
    if char == "2":
        print "Bar"
        break

Zor RÖLANTİ kullanarak başarısız, piton ... şey ... o piton ile birlikte gelir. Ben DOS (er, CMD.exe) 'de denedim Ama bir kez gerçek bir program olarak, o zaman gayet koştu.

Görev Yöneticisi kullanışlı olmadığı sürece hiç kimse, IDLE bunu deneyin.

Zaten tepkili süper anlık arn't menüler ile nasıl yaşadığını unuttun.

Cevap 05/08/2008 saat 04:51
kaynak kullanıcı

oy
0

BOŞTA msvcrt çalışan kütüphane erişmiyor çünkü msvcrt IDLE başarısız nedenidir. cmd.exeye özgün olarak programı çalıştırdığınızda güzel çalışıyor Oysa. Programınız Mac ve Linux terminalleri üzerinde patlarsa Aynı nedenle.

Ama to ya, pencereler için özel olarak daha fazla güç bu kullanıyor gidiyoruz sanırım.

Cevap 05/08/2008 saat 05:28
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more