#!/usr/bin/python
# -*- coding: utf-8 -*-
from Tkinter import *
import sys
# функция обработки события для кнопки
def die(event):
sys.exit()
root = Tk() # создаётся главное окно
button = Button(root) # создаётся кнопка в главном окне
button["text"] = u"Завершение работы" # объект кнопки обрабатывается как словарь
button.bind("<Button-1>", die) # регистрация события нажатия первой кнопки мыши
# первый строковый параметр задаёт имя события
# второй параметр указывает имя функции обработки события,
# которая может принимать единственный параметр — event (событие)
# есть альтернативный способ определения функции обработки события:
# button["command"] = die
# при таком подходе параметр event в функции обработки события
# никогда не используется (и не должен быть указан в описании самой функции)
button.pack() # элемент упаковывается в родительском контейнере
root.mainloop() # запуск главного окна и цикла его событий
При запуске из-под Emacs (C-c C-c) после нажатия на кнопку в окне скрипта “Завершение работы” выдаёт такое:
>>> Traceback (most recent call last):Что это и как с этим бороться?
File “/tmp/py6882Ofk”, line 25, in <module>
root.mainloop() # запуск главного окна и цикла его событий
File “/usr/lib/python2.5/lib-tk/Tkinter.py”, line 1023, in mainloop
self.tk.mainloop(n)
File “/usr/lib/python2.5/lib-tk/Tkinter.py”, line 1405, in __call__
raise SystemExit, msg
SystemExit
>>>