Seite 1 von 1
Tkinter und Hints
Verfasst: Sonntag 2. Mai 2004, 17:16
von DER Olf
hi.
ihr kennt doch sicher diese kleinen beigen kästchen mit einem erklärendem text, die neben der maus erscheinen, wenn man über eine bestimmte stelllt in der GUI mit der Maus fährt.
in der VCL bei Delphi heißt es Hint, und wie bei Tkinter?
oder gibts das gar nicht??
mfg
Olf
Verfasst: Sonntag 2. Mai 2004, 18:48
von Dookie
Hi DER Olf,
dafür brauchst Du Pmw (Python Mega Widgets).
Hier mal ein 2-Teiliges Beispiel:
tkbeispielGUI.py
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
from Tkinter import *
import Pmw
noop = lambda *args: None #dummyfunktion
class MyGUI(object):
def __init__(self, handlers):
self.handlers = handlers
self._buildgui()
def _buildgui(self):
self.root = Tk()
Pmw.initialise(self.root)
self.statusvar = StringVar(self.root)
self.statusvar.trace_variable("w", self.handlers.get("handle_status", noop))
self.button1 = Button(self.root, text=" 1 ", command=self.handlers.get("handle_button1",noop))
self.button1.pack()
# Hint fuer Button1
self.hint1 = Pmw.Balloon(self.button1)
self.hint1.bind(self.button1, "Button 1")
self.button2 = Button(self.root, text=" 2 ", command=self.handlers.get("handle_button2",noop))
self.button2.pack()
# Hint fuer Button2
self.hint2 = Pmw.Balloon(self.button2)
self.hint2.bind(self.button2, "Button2")
self.entry = Entry(self.root, width=20, textvariable=self.statusvar)
self.entry.pack()
def mainloop(self):
self.root.mainloop()
tkbeispiel.py
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
from tkbeispielGUI import *
def do_button1():
myGUI.statusvar.set("Button 1 angeklickt")
print "Button 1"
def do_button2():
myGUI.statusvar.set("Button 2 angeklickt")
print "Button 2"
def do_status(*args):
print "Neuer Status = %s" % myGUI.statusvar.get()
handler_dict = {
"handle_button1" : do_button1,
"handle_button2" : do_button2,
"handle_status" : do_status
}
myGUI = MyGUI(handler_dict)
myGUI.mainloop()
Gruß
Dookie