gpt4 book ai didi

python - 使用curses,如何更新屏幕或等待按键?

转载 作者:行者123 更新时间:2023-12-01 04:51:35 24 4
gpt4 key购买 nike

如何同时更新屏幕或等待按键?我在Python上使用unicurses,但我想我在C中也会遇到同样的问题。这是我想用伪代码执行的操作:

function startScreen(){
stdscr = initscr()
while True{
- Update screen using a variable that is constantly changing (probably by a thread, right?)
- Get a key with getch() - to close or interact with the screen
}
}

我的问题是,除非发生某些事情,例如调整屏幕大小或按下某个键,否则屏幕不会更新。我正在考虑使用 while 循环(和 time.sleep(1)?) 来更新屏幕和线程来等待按键。那可能吗?我对线程不太了解,所以才来问。有没有更简单的方法?

谢谢。

最佳答案

无需任何复杂的多线程即可完成此操作。在您使用的 unicurses 库中也可以找到一个函数curses.halfdelay。需要等待十分之几秒才能继续。 https://docs.python.org/3/library/curses.html#curses.halfdelay

这是一个示例代码,每半秒刷新一次,除非按下了按钮,在这种情况下它会立即更新。

import curses
scr = curses.initscr()
curses.halfdelay(5) # How many tenths of a second are waited, from 1 to 255
curses.noecho() # Wont print the input
while True:
char = scr.getch() # This blocks (waits) until the time has elapsed,
# or there is input to be handled
scr.clear() # Clears the screen
if char != curses.ERR: # This is true if the user pressed something
scr.addstr(0, 0, chr(char))
else:
scr.addstr(0, 0, "Waiting")

关于python - 使用curses,如何更新屏幕或等待按键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28328982/

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