Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Hi.
Вы находитесь в C:myworkspython est.
То есть мы подключили нашу первую программу как модуль и получили возможность использовать определенные в ней функции. Код вне функций (в нашем случае это строки «0, 1, 6-b») выполняется в момент импорта. Именно для того, чтобы избежать какой-либо активности нашего первого сценария во время его импортирования, мы и ввели проверку имени __name__, чтобы определить, подключается наш сценарий к другому или запускается автономно.
Говоря об импорте, следует указать еще на один синтаксис подключения: «from first import hello». Эта команда импортирует из first.py только функцию hello. Через запятую можно перечислить и несколько импортируемых функций. Команда «from first import * » импортирует в текущий сценарий все функции, найденные в first.py. Отличие этого синтаксиса от использованного в second.py заключается в том, что имена функций включаются в пространство имен импортирующего сценария, и поэтому подгруженные функции должны вызываться без указания модуля:
(0) from first import hello
(1) hello('Hi')
Ну и для полноты картины – несколько слов о библиотеке графических объектов Tkinter. Основанная на Tk/Tcl, она позволяет достаточно просто наделять сценарии графическим интерфейсом:
(0) # -*- coding: cp866 -*-
(1) from Tkinter import *
(2)
(3) window = Tk()
(4) window.title(u'Простое графическое окно')
(5) label = Label(window, text = u' Простая текстовая метка')
(6) label.config(fg = 'blue', font = ('Georgia', 14, 'italic'))
(7) label.pack()
(8) button = Button(window, text = u'Закрыть', command = window.quit)
(a) button.pack(expand=YES, fill=X)
(b) window.mainloop()
В строке «1» импортируем все из модуля Tkinter. Далее последовательность действий такова: объявляем окно window верхнего уровня (3); задаем ему текст заголовка (4); описываем и упаковываем текстовую метку (5-7); аналогично поступаем с кнопкой (8-a) и, наконец, в строке «b» запускаем на выполнение цикл окна.
Синтаксис описания различных элементов во многом одинаков – первым параметром задается родительский элемент (в данном случае окно верхнего уровня), к которому прикрепляется данный элемент. Далее перечисляются другие параметры: «text» для задания отображаемого текста, «command» определяет обработчик обратного вызова, который будет исполнен при выборе данного элемента (в данном примере при нажатии на кнопку главное окно будет закрыто). Параметры можно задавать и с помощью метода «config» графического объекта, как показано в строке «6».
Любой объект должен быть размещен одним из менеджеров размещения (в данном примере используем наиболее простой из них – pack). То есть для каждого объекта требуется вызвать метод pack(), который поместит его в конкретном месте окна. С помощью дополнительных параметров можно управлять упаковкой, например, указывать, к какой стороне окна требуется прикрепить элемент (параметр side), следует ли растягивать элемент при изменении размеров окна (expand), должен ли элемент заполнять все отведенное ему пространство в указанном направлении (fill). Самый лучший способ познакомиться с особенностями упаковки – на практике попробовать различные варианты.
Метод mainloop() запускает цикл обработки событий графического окна. При его вызове окно с упакованными на нем элементами отображается на экране, и дальнейшее управление поведением сценария возможно только с помощью обработчиков обратных вызовов, которым передается управление при наступлении того или иного события. Метод quit, строго говоря, осуществляет выход из цикла mainloop и передачу управления на следующий оператор сценария.