Stopping a loop with user input. in curses

Raymond Arthur St. Marie II of III rastm2 at aol.commorespam
Sun Jul 20 13:22:18 EDT 2003


Hey Alex, 

You know, it didn't occure to me till hours later that all you really had to do
is move the second while loop into the "theClock()" definition like this. Same
reason applies.

# Import curses module

import curses, time
stdscr = curses.initscr()

def theClock():
	
    # Define global colour scheme
    curses.init_pair(1, curses.COLOR_WHITE, curses.COLOR_BLUE)
	
    # Get the screen size
    max_y, max_x = stdscr.getmaxyx()
	
    # Calculate the clock position relative to the screen size
    clock_x = max_x - 28 
	
    # Draw the clock
    clockWindow = curses.newwin(3, 26, 1, clock_x)
    clockWindow.bkgd(' ', curses.color_pair(1))
    clockWindow.box()
    clockWindow.refresh()

    # If 'q' is pressed, exit
    finished = 0
    while not finished:
    c = stdscr.getch()
    if c == ord('q'):
        curses.beep()
        finished = 1
        break
    
    t = time.asctime()
    clockWindow.addstr(1, 1, t)
    clockWindow.refresh()
    time.sleep(1)


def main(stdscr):

    # Bring up the clock function

    theClock()

if __name__ == '__main__':
    curses.wrapper(main)






More information about the Python-list mailing list