tkinter and signals
Michael P. Reilly
arcege at shore.net
Sat Jun 12 21:51:14 EDT 1999
Pierre Imbaud <pierre at saiph.com> wrote:
: Hi everyone.
: Im quite new to tkinter. I try to make a program using tkinter, that
: is able to listen to some signals: read a pipe, perform periodic
: actions. I first tried with SIGALRM, with a widget changing fg color
: every second. I dont wait() for SIGALRM, just return in mainloop().
: the behavior I get is: I need the mouse to hover on the app, to get
: the SIGALRM signal. My diagnostic, right or wrong is: in the mainloop,
: the idle state is a wait() for a signal (dunno which) related to an X
: event. In this state, an unwaited signal just wont wake up the
: process.
: It just occurs to me threads might be the solution: for every possible
: signal source, spawn a thread that will explicitly wait for this
: signal? Im not familiar with thread either, so I better wait for a
: confirmation from someone who knows....
: Oh, btw, Im using Solaris 2.5.1 on X86 (its an Unix V.4)
: Thanks for answering!
I would suggest first looking into the after() and after_idle() methods.
They are designed for this type of operation.
There is also a lower-level interface, the _tkinter.createtimerhandler
function.
The after() and _tkinter.createtimerhandler() functions both take
a number of milliseconds and a function.
f = Frame(None)
oneminute = 60000
def change_red(f=f):
f.config(fd="red")
f.after(oneminute, change_green)
def change_green(f=f):
f.config(fg="green")
f.after(oneminute, change_red)
f.after(oneminute, change_red)
-Arcege
More information about the Python-list
mailing list