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

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to