第一个Curses.getstr
调用会清除另一个窗口。在以后的电话中,它不会发生。
require "curses"
Curses.init_screen
window = Curses::Window.new(10, 10, 5, 0)
window.scrollok true
Thread.new do
loop do
window.addstr rand(1000000).to_s
window.refresh
sleep 0.1
end
end
Curses.setpos 20, 0
sleep 1
# now several lines of numbers suddenly disappear
loop{ Curses.getstr }
我该如何对抗这种行为?
答案 0 :(得分:0)
您所看到的是stdscr窗口的隐式refresh()
- 因为getstr()
确实是wgetstr(stdscr)
。您的选择包括:
至少,这就是我为curses的原生C提供的答案 - 我不确定它是如何转换为Ruby的。