0

我正在制作一个简单的菜单,试图在每个按键事件上发出哔哔声,问题是,如果我按下除某些配置的菜单键之外的某个键,控制台输入会将这些键保留在用户输入中,我已按下此屏幕中的下一个键“错误” 按下错误键,然后当我调用我的下一个函数“newtodo()”时,我在主菜单中按下的键,一直写在用户输入传递的键中。

您是否知道每次我在文本菜单上按下一个键时发出哔声的任何好方法,同时我只能通过按键或释放来使用我的菜单?我不想在我的菜单中使用类似 menuoption=int(input("insert ur option :")) 的输入来导航

这是我的代码:

import winsound
import os
from datetime import date
import time
import keyboard
import msvcrt as m
import sys

# Error Beep sound.
def Ebeep():
    error = sys.exc_info()[1]
    print (f"Error1 :{error.args[0]}")
    winsound.Beep(140,300)
    winsound.Beep(100,300)
    os.system('pause')
    os.system('cls')
    sys.stdout.flush()

    
def Ibeep():
    winsound.Beep(600,150)
    os.system('cls')

def newTodo():
    os.system('cls')
    m.getch()
    titulo = " NEW TODO "
    titulo = titulo.center(80, '*')
    title = ""
    description = ""
    priority = ""
    tododate = ""
    status =""
    title = input("Todo title → ")
    description = input("Todo description → ")
    priority = input("Todo priority → ")
    tododate = date.today()
    status = int(input("Todo status () → "))
def menu():
    titulo = " TODO MANAGER "
    titulo = titulo.center(80, '*')
    # Principal Menu 
    while (True):
        try:
            print("\t\t",titulo)
            print("1)New Todo\n2)Search Todo\n3)Update TODO\n4)Delete Todo\n5)Exit\n")
            if keyboard.read_key() == "1":
                Ibeep()
                newTodo()
            if keyboard.read_key() != "":
                Ibeep()
                os.system('cls')

        except:
            Ebeep()
    
def main ():
    menu()

main()

print("¡ Good-Bye !")
4

0 回答 0