2015-05-15 2 views
3

Как удалить текст до конца строки?Как удалить текст в конец строки с помощью проклятий

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

результат экрана: Egestas Curabitur Phasellus magnis # OK

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

результат экрана: Elit metusrabitur Phasellus magnis # Проблема

+1

Использование 'curses' здесь? –

+0

Похож на [curses API] (https://docs.python.org/2/library/curses.html) –

ответ

3

Чтобы удалить в EOL (End Of Line) используют window.clrtoeol():

Пример:

import curses 

window = curses.initscr() 
window.clrtoeol() 
window.refresh() 

Я действительно рекомендую использовать отличный urwid для любого программирования на консоли/TUI.

Обновление: Bhargav Rao прав; вы должны вызвать window.refresh() явно:

Соответственно, проклинает требует, чтобы вы явно указать его перерисовывать окна, используя Refresh() метод оконных объектов. На практике это не очень усложняет программирование проклятиями. Большинство программ переходят в шквал активности, а затем приостанавливают ожидание нажатия клавиши или некоторых других действий со стороны пользователя. Все, что вам нужно сделать, это убедиться, что экран был перерисован до паузы до , ожидая ввода пользователя, просто вызвав метод stdscr.refresh() или refresh() другого соответствующего окна.

+0

Спасибо, что помогли .. –

+0

Добро пожаловать! :) –

+0

Если вы рекомендуете urwid, вы можете рассмотреть показанные примеры с проклятиями против urwid, чтобы проиллюстрировать. –

1

Вам необходимо позвонить stdscr.refresh() перед вашей второй строке кода. Это стало ясно в documentation

Все, что вам нужно сделать, это убедиться, что экран был перерисованы перед паузой, чтобы ждать ввода пользователя, просто вызвав stdscr.refresh()

+0

Спасибо, что помогли .. –

+0

Добро пожаловать, брат! Ty. Хороший день –

2

Использовать stdscr.refresh() до stdscr.addstr(5, 5, "Elit metus"). И это сработает.

+0

Спасибо, что помогли .. –

+0

Добро пожаловать. –

Смежные вопросы