tk = Tk()           # основное окно приложения 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

tk = Tk()           # основное окно приложения

Поиск

tk = Tk()           # основное окно приложения

txt = Text(tk) # текстовый виджет, принадлежащий окну tk

 

txt.pack()         # располагается менеджером pack

 

# функция обработки события

 

def event_info(event):

# удаляется с начала до конца текста

 

txt.delete("1.0", END)

 

for k in dir(event):

# цикл по атрибутам события

 

if k[0] != "_":

# берутся только неслужебные

 

атрибуты

 

# готовится описание атрибута события

ev = "%15s: %s\n" % (k, repr(getattr(event, k))) txt.insert(END, ev) # добавляется в конец текста

 

# привязывается виджету txt функция event_info для обработки

 

событий,

# соответствующих шаблону <KeyPress> txt.bind("<KeyPress>", event_info)

 

tk.mainloop()   # главный цикл обработки событий


 


 

При нажатии клавишиEscв окне можно увидеть примерно следующее:

 

char: '\x1b' delta: 9 height: 0 keycode: 9 keysym: 'Escape'

 

keysym_num: 65307 num: 9

send_event: False serial: 159 state: 0

 

time: -1072960858 type: '2'

widget: <Tkinter.Text instance at 0x401e268c> width: 0

 

x: 83 x_root: 448

y: 44 y_root: 306

 

 

Следует объяснить некоторые из этих атрибутов:

 

· char Нажатый символ(для некоторых событий- ??)

 

· height, width Высота и ширина.

· focus Был ли в момент события фокус у окна?

 

· keycode Код символа(скан-код клавиатуры).

· keysym Символическое имя клавиши.

· serial Серийный номер события.Увеличивается по мере возникновения событий.

 

· time Время возникновения события.Все время увеличивается.

· widget Виджет,в котором возникло событие.

 

· x, y Координаты указателя в виджете во время события.

· x_root, y_root Координаты указателя на экране во время события.

 

В принципе,совсем необязательно,чтобы события обрабатывал тот же виджет,который их первично принял.Например,можно перенаправить все события внутри подчиненных

виджетов на данный виджет с помощью метода grab_set()(grab_release() освобождает виджет от этой обязанности).ВTkсуществуют и другие возможности управления событиями,которые можно изучить по документации.

 



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 49; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.007 с.)