Peter Otten wrote: > Michael Onfrek wrote: > > >>import Tkinter as tk >> >>Hi! Can you explain what line above mean? >> >>I also found : http://effbot.org/zone/tkinter-entry-validate.htm >> >>It works for me, but I not really understand how? :) > > >>>import Tkinter as tk > > > Make objects defined in Tkinter available under the tk prefix. > E. g. to access an Entry you can do 'tk.Entry'. Had you imported it > 'import Tkinter' you would have to do 'Tkinter.Entry' instead. So you > are saving a few keystrokes. Doing 'from Tkinter import *' saves you still > more keystrokes but is considered bad style except for demonstration > purposes. > > >>>var = tk.StringVar() >>>entry = tk.Entry(root, textvariable=var) > > > Create a StringVar and connect it to the Entry widget. Any changes the user > makes in the Entry are reflected in the StringVar's value which can be > accessed with its get() method. > > >>>max_len = 5 >>>def on_write(*args): >>> s = var.get() >>> if len(s) > max_len: >>> var.set(s[:max_len]) > > > Define a function that doesn't care about the arguments passed to it. It > reads the current value of the StringVar 'var' and, if necessary, trims it > to 'max_len_' characters. > > >>>var.trace_variable("w", on_write) > > > Tell the StringVar to call the function on_write() every time its value is > changed. So every time the user edits the data in the Entry, in turn the > Entry changes the data of the StringVar, which calls the on_write() > function which may or may not change the StringVar -- and that change is > reflected in what the Entry displays. This smells like an endless loop, but > so far we seem to be lucky... > > If you look again at Fredrik Lundh's ValidatingEntry, you will find all the > elements explained above packed nicely into one class, with the extra > refinement that he keeps another copy of the value which is used to restore > the old state when the new value is found to be invalid. > > Peter >
Thank you, man! You should write an tutorial to Tkinter or something like that. -- http://mail.python.org/mailman/listinfo/python-list