Читать «Программирование на Python. Том 1» онлайн - страница 642
Марк Лутц
Запустите сценарий
бытий after. При выполнении в виде окон верхнего уровня в одном и том же процессе все они получают событие от таймера из одного и того же цикла событий. При запуске в качестве независимых программ в каждой из них имеется собственный цикл событий. В том и другом случае их секундные стрелки дружно перемещаются раз в секунду.
Исходный программный код PyClock
Вся реализация PyClock находится в одном файле, за исключением предварительно подготовленных объектов с настройками стилей. Если посмотреть в конец примера 11.12, можно заметить, что объект часов можно создать, либо передав конструктору объект с настройками, либо определив параметры настройки в аргументах командной строки, как показано ниже (в этом случае сценарий просто сам создаст объект с настройками):
C:\...\PP4E\Gui\Clock> clock.py -bg gold -sh brown -size 300
Вообще говоря, для запуска часов этот файл можно выполнить непосредственно, с аргументами или без; импортировать его и создать объекты, используя объекты с настройками, чтобы часы выглядели более индивидуально; или импортировать и прикрепить его объекты к другим графическим интерфейсам. Например, PyGadgets из главы 10 запускает этот файл с параметрами командной строки, управляющими внешним видом часов.
##############################################################################
PyClock 2.1: часы с графическим интерфейсом на Python/tkinter.
В обоих режимах отображения, аналоговом и цифровом, могут выводить метку с датой, графические изображения на циферблате, изменять размеры и так далее. Могут запускаться автономно или встраиваться (прикрепляться) в другие графические интерфейсы, где требуется вывести текущее время.
Новое в версии 2.0: клавиши s/m устанавливают таймер, отсчитывающий секунды/ минуты перед выводом всплывающего сообщения; значок окна.
Новое в версии 2.1: добавлена возможность выполнения под управлением Python 3.X (2.X больше не поддерживается)
##############################################################################
from tkinter import *
from tkinter.simpledialog import askinteger import math, time, sys
##############################################################################
# Классы параметров настройки
##############################################################################
class ClockConfig:
# умолчания - переопределите в экземпляре или в подклассе
size = 200 # ширина=высота
bg, fg = ‘beige’, ‘brown’ # цвет циферблата, рисок
hh, mh, sh, cog = ‘black’, ‘navy’, ‘blue’, ‘red’ # стрелок, центра picture = None # файл картинки