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

时间:2015-05-15 11:42:49

标签: python curses

如何将文字删除到行尾?

stdscr.addstr(5, 5, "Egestas Curabitur Phasellus magnis")

结果屏幕:Egestas Curabitur Phasellus magnis#确定

stdscr.addstr(5, 5, "Elit metus")

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

3 个答案:

答案 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()

即可确保在暂停等待用户输入之前重新绘制屏幕。