如何使用curses删除文本到行尾

Ing*_*dek 6 python curses

如何删除文本到行尾?

stdscr.addstr(5, 5, "Egestas Curabitur Phasellus magnis")
Run Code Online (Sandbox Code Playgroud)

结果屏幕:Egestas Curabitur Phasellus magnis#OK

stdscr.addstr(5, 5, "Elit metus")
Run Code Online (Sandbox Code Playgroud)

结果屏幕:Elit metusrabitur Phasellus magnis#问题

Jam*_*lls 5

要删除到EOL(行),请使用window.clrtoeol():

例:

import curses

window = curses.initscr()
window.clrtoeol()
window.refresh()
Run Code Online (Sandbox Code Playgroud)

我真的建议使用伟大的urwid进行任何控制台/ TUI编程.

更新: Bhargav Rao是对的; 你必须window.refresh()明确地打电话:

因此,curses要求您使用window对象的refresh()方法明确告诉它重绘窗口.在实践中,这并没有真正使编程与curses复杂化.大多数程序进入一系列活动,然后暂停等待用户的按键或其他操作.您只需要通过调用stdscr.refresh()或某些其他相关窗口的refresh()方法,确保在暂停等待用户输入之前重新绘制屏幕.

  • 如果您推荐 urwid,您可以考虑展示带有 curses 与 urwid 的完整示例,以进行说明。 (3认同)