gpt4 book ai didi

python curses - newwin 中的 .getch() 不工作

转载 作者:太空宇宙 更新时间:2023-11-04 01:26:42 25 4
gpt4 key购买 nike

我正在尝试使用 curses 模块制作菜单系统。我有以下代码:

import sys, os, traceback, curses

def main(scrn):
screen = scrn
screen.border(0)
curses.start_color()
curses.init_pair(2,curses.COLOR_WHITE,curses.COLOR_BLUE)

while True:
event = screen.getch()
if event == ord("q"):
break
elif event == curses.KEY_RIGHT:
#enter function containing while loop, passing job
job_sub()


#loop to hand the subscreen for a job element
def job_sub():

screen = curses.newwin(5, 10, 3, 3)
screen.box()
objects =["RUN", "MAINTAIN", "EDIT"]

for i in range( len(objects) ):
if i == 0:
screen.addstr(i+1,1, objects[i], curses.color_pair(2))
else:
screen.addstr(i+1,1, objects[i])

screen.refresh()

while True:
event = screen.getch()
if event == curses.KEY_LEFT:
break

screen.erase()
return

if __name__=='__main__':
try:
# Initialize curses
screen=curses.initscr()
curses.noecho()
curses.cbreak()
screen.keypad(1)

main(screen)

screen.keypad(0)
curses.echo()
curses.nocbreak()
curses.endwin()
except:
# In event of error, restore terminal to sane state.
screen.keypad(0)
curses.echo()
curses.nocbreak()
curses.endwin()
traceback.print_exc()

程序一直运行到我按下右箭头键为止。在那之后,它卡住了,就像它卡在了一个循环中一样。它不会响应任何更多的输入。任何帮助表示赞赏。

最佳答案

在您的 job_sub() 函数中,您创建了一个新窗口,但没有为其启用小键盘。因此,箭头键不会发送 curses.KEY_LEFT 值。

关于python curses - newwin 中的 .getch() 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17328081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com