如何将文字删除到行尾?
stdscr.addstr(5, 5, "Egestas Curabitur Phasellus magnis")
结果屏幕:Egestas Curabitur Phasellus magnis
#确定
stdscr.addstr(5, 5, "Elit metus")
结果屏幕:Elit metusrabitur Phasellus magnis
#问题
答案 0 :(得分:5)
要删除到EOL(行尾),请使用window.clrtoeol()
:
示例:强>
import curses
window = curses.initscr()
window.clrtoeol()
window.refresh()
我真的建议使用优秀的urwid进行任何控制台/ TUI编程。
更新:但是Bhargav Rao是正确的;你必须明确地致电window.refresh()
:
因此,curses要求您明确告诉它重绘 windows,使用window对象的refresh()方法。在实践中, 这并没有真正使编程与curses复杂化。最 程序进入一系列活动,然后暂停等待 按键或用户方面的其他一些操作。所有你需要的 做的是确保在暂停之前重绘了屏幕 等待用户输入,只需调用stdscr.refresh()或 某些其他相关窗口的refresh()方法。
答案 1 :(得分:2)
在stdscr.refresh()
之前使用stdscr.addstr(5, 5, "Elit metus")
。它会起作用。
答案 2 :(得分:1)
您需要在第二行代码之前调用stdscr.refresh()
。这在documentation
您只需调用
即可确保在暂停等待用户输入之前重新绘制屏幕。stdscr.refresh()