Программирование виджетов Entry

programmirovanie vidzhetov entry Экскурсия по tkinter, часть 1

Вообще говоря, значения, вводимые в виджеты Entry и отображаемые ими, могут быть записаны или получены с помощью связанных объектов «переменных» (описываемых далее в этой главе) или с помощью следующих методов виджета Entry:

ent.insert(0, ‘some text’) # запись значения

value = ent.get() # извлечение значения (строки)

Первый параметр метода insert определяет позицию в строке, начиная с которой должен быть введен текст. Здесь «0» означает ввод в начало строки, поскольку смещения начинают отсчитываться с нуля, а целое число 0 и строка ‘0’ означают одно и то же (аргументы методов в библиотеке tkinter всегда при необходимости преобразуются в строки). Если виджет Entry уже содержит текст, то обычно требуется удалить его содержимое перед записью нового значения, иначе новый текст будет просто добавлен к уже существующему:

ent.delete(0, END) # сперва удалить текст с начала до конца

ent.insert(0, ‘some text’) # затем записать значение

Имя END здесь является предопределенной константой tkinter, обозначающей конец содержимого виджета — она снова встретится нам в главе 9 при изучении полномасштабного и многострочного виджета Text (более мощного собрата Entry). Поскольку после удаления виджет не будет ничего содержать, предыдущая последовательность инструкций эквивалентна следующей:

ent.delete(‘0’, END) # удалить текст с начала до конца

ent.insert(END, ‘some text’) # добавить в конец пустой строки текста

В любом случае, если сначала не удалить текст, новый текст просто будет добавлен к нему. Если вам интересно увидеть, как это происходит, измените функцию fetch, как показано ниже, и при каждом щелчке кнопкой или нажатии клавиши в начало и в конец поля ввода будет добавляться «x»:

def fetch():

print(‘Input => “%s”’ % ent.get()) # получить текст

ent.insert(END, ‘x’) # для очистки: ent.delete(‘0’, END)

ent.insert(0, ‘x’) # новый текст просто добавляется

В последующих примерах мы встретимся также с параметром state= ’disabledвиджета Entry, делающим его доступным только для чтения, а также параметром show=’*’, заставляющим его выводить каждый символ как * (полезно для организации ввода паролей). Поэкспериментируйте с этим сценарием, изменяя и запуская его. Виджет Entry поддерживает и другие параметры, которые мы здесь также пропустим; дополнительные сведения ищите в последующих примерах и других источниках.

Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, I том, 2011

Каталог сайтов Всего.ру
Оцените статью
Секреты программирования
Добавить комментарий