作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何同时更新屏幕或等待按键?我在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/
我是一名优秀的程序员,十分优秀!