FAQ
Hey Alex,
I wrote a detailed explanation earlier today and it seams to have disappeared.
That's okay, because I had really beat up your code.

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.

I move the second while loop into the "theClock()" function so that it handles
the key press. Then consolodated the while loops into one loop.
If the finished variable is 0(zero) then the loop continues else it breaks the
loop and the function has no where else to go but out.

The problem with your original code is that the call to "theClock()" function
never sees the 'q' key press because the second while loop never gets executed
while the first while loop is forever executing.

I don't have curses installed so I can't test this for you, but it should
work.

# 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: # finished = 0 until the 'q' key is pressed
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)

Ray--

Search Discussions

Discussion Posts

Previous

Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 4 of 11 | next ›
Discussion Overview
grouppython-list @
categoriespython
postedJul 19, '03 at 9:26p
activeJul 23, '03 at 2:20a
posts11
users4
websitepython.org

People

Translate

site design / logo © 2022 Grokbase