addstr delay in Python Curses

838 views Asked by At

I'm working on an AI and I am using Curses and I would like to be able to add a message, wait five seconds then draw another message.

Below is the piece I am trying to fix

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import curses
import time

screen = curses.initscr()
curses.noecho()
curses.curs_set(0)
screen.keypad(1)

screen.addstr("This is a Sample Curses Script\n\n")
screen.addstr("This is a Sample Curses Script\n\n")
time.sleep(5)
screen.addstr("This is a Sample Curses Script\n\n")
while True:
   event = screen.getch()
   if event == ord("q"): break

curses.endwin()
1

There are 1 answers

0
gustafbstrom On BEST ANSWER

From the official guide:

After you have put on the window what you want there, when you want the portion of the terminal covered by the window to be made to look like it, you must call refresh().

Thus, change your code as such:

import curses
import time

screen = curses.initscr()
curses.noecho()
curses.curs_set(0)
screen.keypad(1)

screen.addstr("This is a Sample Curses Script\n\n")
screen.addstr("This is a Sample Curses Script\n\n")
screen.refresh()
time.sleep(5)
screen.addstr("This is a Sample Curses Script\n\n")
screen.refresh()
while True:
    event = screen.getch()
    if event == ord("q"): break

curses.endwin()