(Tkinter) Adding delay to PopUpMsg
Harlin Seritt
harlinseritt at yahoo.com
Fri Mar 18 02:40:20 EST 2005
I am working on making something called a PopMsg widget which is
actually identical to a Balloon widget from Pmw. Here is the code:
---code---
from Tkinter import *
import time
class PopMsg:
def showmsg(self, event):
for a in range(10000000): pass
self.t.deiconify()
self.t.geometry(str(self.msg.winfo_reqwidth())+'x'+str(self.msg.winfo_reqheight())+'+'+str(event.x_root)+'+'+str(event.y_root))
self.widget.bind('<Leave>', self.hide)
time.sleep(0.001)
def hide(self, event):
self.t.withdraw()
def __init__(self, parent, widget, text=None):
self.parent=parent
self.widget=widget
self.text=text
self.t = Toplevel()
self.t.withdraw()
self.t.overrideredirect(1)
self.msg = Message(self.t
, text=self.text
, bg='white'
, border=1
, relief=SOLID
, aspect=250)
self.msg.pack(ipadx=10, ipady=5)
self.parent.unbind('<Enter>')
self.parent.focus()
self.widget.bind('<Enter>', self.showmsg)
def printhello():
print 'Hello'
root = Tk()
button = Button(root, text='Hello !', command=printhello)
button.pack(padx=10, pady=10)
p = PopMsg(root, button, text='Some messaging text can go here.')
root.mainloop()
---End Code---
My problem you'll notice is that I tried to put something of a 'delay'
that will allow the popup to show a few seconds after the cursor has
entered the targeted widget's space (in this case the button). That
works ok but I've found that while waiting I can't activate (or
'click') on the button until the PopMsg has shown up. Is there anything
I can do to solve this problem?
thanks,
Harlin Seritt
More information about the Python-list
mailing list