Python
Gauss Beam
Multislit
Validating Entry
Diagram Collection
|
Documentation |
| |
class VEntry | class VEntry |
__init__(master, validate = None, initial = '', formatter = None, hook_update = None, **entry_kwargs)
- validate is a function of one argument str, the string to be validated. Return value must be an instance of ventry.Validity, see below. Following validators are coded:
- ventry.number
- ventry.int
- ventry.string
- ventry.number_none, accepting numbers and 'None'.
- initial is the initial value to be set. It must be valid, and will be formatted by formatter beforehand, thus all values accepted by formatter can be formatted.
- formatter is a function of one argument, value, and returns a string being the display value of the underlying Tkinter.Entry.
- hook_update is an argumentless function being called on input change, on initialisation and on .set() (for .set(), see there).
- **entry_kwargs are arbitrary keyword arguments passed to the constructor and being passed on to the constructor of Tkinter.Entry.
- validate ist eine Funktion mit einem Argument str, dem zu validierenden String. Rückgabewert muß eine Instanz von ventry.Validity sein, siehe unten. Folgende Validatoren sind kodiert:
- ventry.number
- ventry.int
- ventry.string
- ventry.number_none, welcher Zahlen und 'None' akzeptiert.
- initial ist der anfängliche Wert, der gesetzt werden soll. Er muß gültig sein, und wird durch formatter zuvor formatiert werden, sodaß alle Werte formatiert werden können, welche von formatter akzeptiert werden.
- hook_update ist eine argumentlose Funktion, welche bei Eingabeänderung, bei Initialisierung und bei .set() aufgerufen wird (zu .set() siehe dort).
- **entry_kwargs sind beliebige dem Konstruktor übergebene Schlüsselwortargumente, welche zum Konstruktor von Tkinter.Entry weitergegeben werden.
initialise()
validate(callback = True)
set(value, callback = True)
get()
pack(*entry_args, **entry_kwargs)
pack_forget()
grid(*entry_args, **entry_kwargs)
grid_forget()
disable()
enable()
destroy()
__init__(master, name = None, column = None, row = None, mode = 'horizontal', validate = None, initial = '', formatter = None, label = None, hook_update = None, **ventry_kwargs)
- name, when set, should be a string used as text for the Tkinter.Label used for labeling the VEntry input field. name is allowed to be left out only if label is specified instead.
- column and row specify the place where to .grid() the label of the NamedVEntry. The entry field will be placed according to mode in one of the neighbouring grid cells. When one of both is not given, no automatical .grid()ing will be performed.
- mode can be 'horizontal' or 'vertical'. For details, see grid().
- validate, initial, formatter and hook_update are pure VEntry options, see there.
- label is an optional argument, and can be used to hand over a widget to be used as the label widget instead of a Tkinter.Label. The widget has to support .grid() and optionally .grid_forget() (when used with .grid_forget()).
- **ventry_kwargs are passed over to the constructor of VEntry and from there on to the constructor of the underlying Tkinter.Entry.
- name sollte, wenn gesetzt, ein String sein, der als text für das zur Beschriftung des VEntries erzeugte Tkinter.Label benutzt wird. name kann ausschließlich dann weggelassen werden, wenn anstelledessen label spezifiziert wird.
- column und row geben den Ort an, an den das Beschriftungselement des NamedVEntries ge.grid()ed werden soll. Das Eingabfeld wird entsprechend mode in einer der angrenzenden Zellen plaziert. Wenn eins von beiden nicht angegeben ist, wird kein automatisches .grid() ausgeführt werden.
- mode kann auf 'horizontal' oder 'vertical' gesetzt werden. Für Details siehe grid().
- validate, initial, formatter und hook_update sind reine VEntry-Optionen, siehe dort.
- label ist ein optionales Argument, und kann dazu benutzt werden, ein Widget zu übergeben, welches anstelle eines Tkinter.Labels als Label-Widget benutzt wird. Das Widget muß .grid() und optional .grid_forget() (für Benutzung mit .grid_forget()) unterstützen.
- **ventry_kwargs werden dem Konstruktor von VEntry übergeben und dort an den Konstruktor des darunterliegenden Tkinter.Entries weitergegeben.
pack(*args, **kwargs), pack_forget()
grid(column, row, **ventry_kwargs)
- If self.mode (see __init__()) is 'horizontal', the entry itself will be placed in the cell with coordinates (column + 1, row). The label is .grid()ed with kwargs sticky = Tkinter.E, the VEntry is .grid()ed with kwargs **ventry_kwargs, where 'sticky' is set to default Tkinter.W. Thus, without **ventry_kwargs given, the layout will be such that label and VEntry touch each other at the cell boundary. This behaviour can be overridden for the VEntry via **ventry_kwargs.
- If self.mode is 'vertical', the entry will be placed in cell (column, row + 1). The label is .grid()ed with kwargs sticky = Tkinter.W, the VEntry is .grid()ed with kwargs **ventry_kwargs, where 'sticky' is set to default Tkinter.W (the same as for 'horizontal'). Thus, without **ventry_kwargs given, the layout will be such that label and VEntry are aligned at the left side of the column. Again, this behaviour can be overridden for the VEntry via **ventry_kwargs.
- Wenn self.mode (siehe __init__()) 'horizontal' ist, wird das Eingabefeld selbst in der Zelle mit den Koordinaten (column + 1, row) plaziert werden. Die Beschriftung wird mit kwargs sticky = Tkinter.E ge.grid()ed, das VEntry wird mit kwargs **ventry_kwargs ge.grid()ed, wobei 'sticky' auf den Default Tkinter.W gesetzt ist. Ohne gegebene **ventry_kwargs wird das Aussehen daher so sein, daß die Beschriftung und das VEntry sich gegenseitig an der Zellgrenze berühren. Dieses Verhalten kann für das VEntry via **ventry_kwargs überschrieben werden.
- Wenn self.mode 'vertical' ist, wird das Eingabefed in der Zelle (column, row + 1) plaziert werden. Das Beschriftungselement wird mit kwargs sticky = Tkinter.W ge.grid()ed, das VEntry wird mit kwargs **ventry_kwargs ge.grid()ed, wobei 'sticky' auf den Defaultwert Tkinter.W gesetzt wird (genauso wie für 'horizontal'). Ohne gegebene **ventry_kwargs wird das Aussehen daher so sein, daß Beschriftung und VEntry am linken Rand der Spalte ausgerichtet sind. Wieder kann dieses Verhalten für das VEntry via **ventry_kwargs überschrieben werden.
grid_forget()
destroy()
__init__(valid, value = None)
- number(str) accepts all strings which represent a number.
- int(str) accepts all strings wich represent an integer, e.g. "123", "456L", "789l" (with small L).
- string(str) accepts everything and returns as value the string handed over.
- number_none(str) accepts numbers and "None".
- number(str) akzeptiert alle Strings, welche eine Zahl repräsentieren.
- int(str) akzeptiert alle Strings, welche eine Ganzzahl repräsentieren, z.B. "123", "456L", "789l" (mit kleinem L).
- string(str) akzeptiert alles und gibt als Wert den übergebenen String zurück.
- number_none(str) akzeptiert Zahlen und "None".
Maintained since: 8/09
$Last changed: 9/09$