|
Cetus Group
Информационные системы и программное обеспечение
Меню
Файлы проекта
Поддержка
E-mail:
cetus@ukr.net
|
Разработка программного обеспечения средствами языка Python и библиотеки Tkinter
Редакция 29.12.2005 : Изменения 21.03.2007
А.Г. © Часть 1 - "Игра 15"Игра "15" реализована в виде класса Fifteenth и главного модуля.
Класс Fifteenth включает:
Главный модуль создает окно приложения, инициализирует безымянный объект класса Fifteenth и формирует цикл опроса событий.
#!/usr/bin/python
from Tkinter import *
import random
class Fifteenth:
def __init__(self,root):
self.pieces = [[0,1],[0,2],[0,3],[0,4], \
[0,5],[0,6],[0,7],[0,8], \
[0,9],[0,10],[0,11],[0,12], \
[0,13],[0,14],[0,15],[0,0]]
self.field = []
def run(self):
self.mix()
for i in range(4):
for j in range(4):
if self.pieces[4*i+j][1] != 0:
but = Button(root,text=self.pieces[4*i+j][1])
but.bind("
Наличие нескольких кнопок и использование одной функции-обработчика приводит к необходимости передачи в обработчик инофрмации о координатах нажатой кнопки. Для этого в обработчик передаются дополнительные аргументы. Для перемещения кнопки используются методы 'grid' и 'config', смену аргументов для функции-обработчика выполняет вызов 'bind' в методе 'run'. В связи с тем, что в Tkinter отсутствует возможность указания аргументов обработчика в 'bind', используется 'lambda'-функция, устанавливающая значения аргументов по умолчанию. Выполняем, проверяем результаты. На этом все.
|