我是一名学习Python的学生,如果你们能帮助我解决这个问题,那就太好了。
这是一个临时的最小代码段,window1 是一个预制变量,它在函数外部创建一个矩形。
def key_pressed(event):
if event.key == "a":
add(window1)
else:
if event.key == "n":
name = str(input("Task Name: "))
tname = Text(name)
tname.set_position(get_width(), get_height())
add(tname)
elif event.key == "t":
time = int(input("Due Time: "))
ttime = Text(str(time))
add(tname)
if event.key == "Escape":
remove(window1)
remove(tname)
remove(ttime)
add_key_down_handler(key_pressed)
等等等等
我在 CodeHS 网站上使用 Python 3 Graphics (Brython),我希望我的程序仅在按下另一个按键事件后才允许某个按键事件。我尝试过嵌套 if 语句和其他东西,但我似乎无法让它工作。另外,event.key == "Escape" 不会删除 tname 和 ttime 图形。
如何才能做到在删除窗口时,只能在按“a”之后按“n”和“t”,而在“esc”之后不能按?
谢谢
我也是一名学生(目前也在做CodeHS),我试图找到一种方法来解决这个问题。这是代码的编辑版本(用您自己的代码替换“成功”消息,但由于我没有 window1,所以我决定使用简单的“打印”功能)。
has_a_yet = False
def callback(event):
key = event.key
print([key])
if key == 'a':
print("A SUCCESSFUL")
has_a_yet = True
if has_a_yet:
if key == "n":
name = str(input("Task Name: "))
tname = Text(name)
tname.set_position(get_width(), get_height())
add(tname)
elif key == "t":
time = int(input("Due Time: "))
ttime = Text(str(time))
add(tname)
if key == "Escape":
print("remove all objects")
add_key_down_handler(callback)
我希望这对你有用! 哦,还有一件事......
供将来参考(我在寻找解决方案时发现了这个),Brython 中有一个函数称为:
add_key_down_handler(callback)
如果这对任何人都有用,或者如果有人知道如何将其与任何解决方案集成(因为我也在努力让它发挥作用),请回复!谢谢你;)