Input element enables users to enter a single line of text. If you need to be able to enter multiple lines of text, then use a
If the parameter
enable_events=True then any key press when the
Input element has focus will generate an event. The value of the
Input does not have to change for this event to be generated.
The values dictionary entry is the string currently shown in the
values['-INPUT ELEMENT KEY-'] contains the value of the string in the
Input element when the event happened that caused
window.read() to return. You do not need to call
window['-INPUT ELEMENT KEY-'].get() to obtain the value of the element.
With most GUI frameworks, a widget's value is obtained by calling a
get method of some sort. The
Input element does have a
get method, but you should not need to call it except in uncommon situations. The point of the
values dictionary is so that you do not need to call a
get method. If you must have the most current value, that may have changed since your last call to
window.read, then perhaps calling
get is justified.
This element is ideal for entering passwords. The parameter
password_char is used to specify a character that will be used to obscure characters entered by the user. Most password entry windows use the "
"*" character to hide passwords. If you set
password_char='*' then as characters are entered into the
Input element, rather than seeing the characters being typed, each character is instead displayed as
Creating "Forms" - the
This parameter makes creating forms easier. When inputing information into a form, the normal sequence of events is that all of the fields are cleared after a form is "added" or "submitted". If you create your
Input element with
do_not_clear=False then your
Input element will be set to an empty string after every
window.read() call. It's equivalent to calling
window['-INPUT ELEMENT KEY-'].update('')
It's not uncommon to want to restrict your user to entering only certain characters. For example, if you're expecting only an integer to be entered, then you can add this validation to your event loop by enabling events for the
Input element, checking the value, and if illegal characters are present - remove them and write the value back to the Input element by calling its