Главная » Просмотр файлов » Саммерфилд - Программирование на Python 3

Саммерфилд - Программирование на Python 3 (1077331), страница 125

Файл №1077331 Саммерфилд - Программирование на Python 3 (Саммерфилд - Программирование на Python 3) 125 страницаСаммерфилд - Программирование на Python 3 (1077331) страница 1252018-01-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 125)

В изучении и использовании все они более простые, чем Т)с, и для всех имеется гораздо больше документации, ориентированной на программистов, использующих язык РуФ)топ, чем для Т)с. В общем случае программы, использующие РуС()с, Руч$ или чгхРуФ)топ, получаются более короткими и дают более качественный результат, нежели программы, использующие Т1с.

И все же, несмотря на все ограничения и недостатки, библиотеку Т)с можно использовать для создания полезных программ с графическим интерфейсом — среда разработки 1ЭЬЕ является наиболее известным в мире РуФ)топ подтверждением этих слов. Кроме того, во время написания этой книги появились признаки оживления в разработке библиотеки Т)с. Начиная с версии 8.5, в библиотеке была реализована поддержка тем оформления, что обеспечивает большее сходство графического интерфейса программ с графическим интерфейсом операционной системы, а также появилось множество новых виджетов. Цель этой главы состоит в том, чтобы дать вам общее представление о программировании с применением библиотеки Т)с. При необходимости разработки серьезного графического интерфейса лучше не обращаться к материалу этой главы (так как в ней демонстрируются устаревшие подходы к использованию библиотеки Т)с для создания графического интерфейса) и воспользоваться одной из альтернативных библиотек.

Но если Т)с — единственная доступная для вас возможность, то вам определенно следует изучить язык Тс1, чтобы иметь возможность читать документацию для библиотеки Т1с. В следующих разделах мы создадим две программы с графическим интерфейсом с использованием библиотеки Т)с. Первая, очень маленькая программа, в форме диалога, позволяет вычислять сложные проценты по банковским вкладам. Вторая программа — более сложная, она имеет главное окно и управляет списком закладок (имена и адреса с)К) ). Благодаря использованию таких простых данных мы можем сконцентрировать все свое внимание на программировании графического интерфейса, не отвлекаясь на посторонние детали, В процессе обзора программы управления закладками мы увидим, как создавать свои собственные диалоги и как создавать главное окно программы, с полосой меню и панелями инструментов, а также как все это соединить в единую полноценную работающую программу.

Но для начала нам необходимо рассмотреть некоторые основные принципы программирования графического интерфейса, поскольку они существенно отличаются от принципов создания консольных программ. Консольные программы на языке РуФЬоп и файлы модулей всегда имеют расширение.ру, но для файлов программ с графическим интерфейсом используется расширение .руи (однако для файлов модулей всегда используется только расширение .ру). Для операционной системы Программы в виде диалога 1 ьппх нет никакой разницы между расширениями .ру и .руга, но в чгьгш бочов расширение .руга ассоциировано не с выполняемым файлом интерпретатора ругаон.ехе, а с русаоаиг.ехе, вследствие чего при запуске программы на языке РуФТьоп с графическим интерфейсом не будет появляться окно консоли.

В операционной системе Мас ОЯ Х похожая ситуация — для файлов программ с графическим интерфейсом используется расширение .руга. Когда запускается программа с графическим интерфейсом, она обычно начинает с того, что создает главное окно и все виджеты главного окна, такие как полоса меню, панели инструментов, центральная область и строка состояния. После создания окна программа с графическим интерфейсом, подобно серверной программе, переходит в режим ожидания.

Однако если серверная программа ожидает получения запросов от программ-клиентов, то программа с графическим интерфейсом ожидает некоторых действий пользователя, таких как щелчок мышью или нажатие клавиши. Эти различия между консольными программами и программами с графическим интерфейсом изображены на рис. 13.1. Но программа с графическим интерфейсом не просто пассивно ожидает, она выполняет цикл обработки событий, алгоритм работы которого на псевдокоде выглядит, как показано ниже: Типичная консольная программа Рис.

13.1. Консольная арограмма и арограмма с графическим интерфейсом Программы з виде диалога логов используются классы, а большинство виджетов, содержащихся в окне, являются экземплярами стандартных виджетов, таких как кнопки или флажки, предоставляемые библиотекой. Как и большинство кросс-платформенных библиотек графического интерфейса, библиотека Т)с в действительности не различает главное окно и виджеты, окно — это обычный виджет, который не имеет родительского виджета (то есть он не содержится внутри другого виджета). Виджеты, не имеющие родительского виджета (окна), автоматически снабжаются рамкой и прочими визуальными атрибутами окна (такими как строка заголовка и кнопка закрытия окна) и, как правило, содержат другие виджеты.

В большинстве своем виджеты создаются как дочерние по отношению к другим виджетам (и содержатся внутри своих родительских виджетов), а окна создаются как дочерние виджеты объекта 1 Кап(ег, ТК. Этот объект обычно концептуально представляет приложение. Помимо разделения на виджеты и окна (которые также называются виджетами верхнего уровня), отношения родитель-потомок обеспечивают корректный порядок удаления виджетов и автоматическое удаление всех дочерних виджетов при удалении родительского виджета. Метод инициализации служит местом, где создается пользовательский интерфейс (создаются и размещаются виджеты, выполняется привязка клавиатуры н мыши), а другие методы используются для обработки действий пользователя. Библиотека Т)с позволяет создавать собственные виджеты либо посредством создания подклассов предопределенных виджетов, таких как 1К1пгЕг. ггазЕ, либо посредством создания обычных классов и добавления в них виджетов в виде атрибутов.

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

с1ааа магпгг)поог«(гк1п1ег.»газа): сап 1паг (аа1Г, рагепг): аорег(иаапи1поою, ав1г). апы (рагап1) аа1Г.рагеп1 = рагап1 аа1Г.Ог1О(гоп=о, со1иап=с) Сначала вызывается метод инициализации базового класса. (В идеале можно было бы вызвать метод как аорег(). 1п!1 (рагепг), но к моменту написания этих строк такой способ уже не работал, поэтому вызывается функция аорег() с базовым классом и объектом зе1г в виде явно передаваемых аргументов.) Затем сохраняется копия родительского виджета для последующего использования. Виджеты располагаются внутри других виджетов с помощью менеджеров компоновки, а не с помощью абсолютных координат и размеров. Вызов метода О г)г) () помещает окно внутрь менеджера компоновки типа «сетка».

Каждый Глава !3. Введение а программирование графического интерфейса отображаемый виджет должен быть помещен в менеджер компоновки, даже виджет верхнего уровня. Б библиотеке Т)с имеется несколько менеджеров компоновки, но менеджер типа «сетка» является наиболее простым в использовании, хотя для виджетов верхнего уровня, чтобы добиться того же эффекта, можно было бы использовать менеджер компоновки типа «мозаика» (рас)тег), вызвав метод расК() вместо дг!О(гон=0, со1ивп=О).

веы.рг!пс1ра1 = СК!птег.ОсчЫеуаг() ве!С.ргспс1ра1.вес(!000.0) ве1Г гасе = СК1псег.ОсчЫеуаг() ве!г.гасе.вес(5.0) ве!т.уеагв = СК1птег. 1птуаг() ве1(.аасчпс = Скспсег.5смпдуаг() Библиотека Т)с позволяет создавать переменные, ассоциированные с виджетами. Если значение переменной изменяется программным способом, изменения тут же отражаются в соответствующем ей виджете, и точно так же, если пользователь изменяет значение в виджете, изменяется значение в ассоциированной переменной.

Здесь были созданы две переменные типа «с)ои)т)е» (они хранят значения типа (1оаС), целочисленная переменная, строковая переменная и заданы начальные значения в двух из них. рг!пссра1(аЬе1 = СК1псег. СаЬе1(ве1Г, Сехс="Рг1пссра1 3:", апсьсг=ск1псег и, епсег1спе=О) рг1пссра15са!е = СКсптег.дса1е(ве1Г, чагсаЫе=ве1т.рг1пс!ра1, совпапе=ве1т.ореаседс, Ггев =100, Со=10000000, гевс1ис!Ьп»100, сг!епс=сК!птег.НОЙ120МТАС) гата(аее1 = СК!пСег.(аЬе1(ве1Г, СехС="йасе %:", ипеег11пе=О, апсппг=скспсег.И) гасе5са1е = СКсптег.вса1е(ве1Г, чаг!аЫе=ве1т.тате, сопаапс=ве1г.арса!ад!, ггсп =1, со=100, гевс1ит!оп=0.25, С!д!Се=5, смел!=СКспсег НОН120МТАС) уеагв(аее1 = СК!птег.(аЬе1(ве1Г, Сехс="уеагв:", епеег!тле=О, апспсг=ск!псег.н) уеагв8са1е = СК!пСег.8са1е(ве1Г, чаг!аЫе=ве1(.уеагв, саазала=ве1(.чраате01, (гоп =1, Со=50, ог!епс=СКсгсег,НОН120МТАЬ) аесиптсаее1 = Сксптег.(аее1(ве1(, техт="Апсчпс 3", апспсг=сК!псег.Х) астиа1Аасчпссасе1 = СКспСег.(аЬе1(ве1Г, тех!час!аЫе=ве!т.аасппт, гЕ1!ет=схсптег.БОМКЕМ, апсЬсг=сКспсег.Е) Б этой части метода инициализации создаются виджеты.

Биджет СК!птег. ЕаЬе1 используется для отображения текста, доступного только для чтения. Как и в случае любых других виджетов, при его создании определяется родительский виджет (в данном случае, как и в любом другом, родителем является содержащий его виджет), а затем через именованные аргументы задаются настройки различных аспектов Программы в виде диалога поведения виджета и его внешнего вида.

Для виджета рг!пс!ра1Еаве1 мы определили отображаемый им текст, а в аргументе апсвог передали значение !К!и!ег, И, которое означает, что текст метки будет выравниваться по западному (и ее!), то есть по левому краю. Аргумент ьпдег!!пе определяет, какой символ в тексте будет использоваться для обозначения горячей клавиши (например, Ай+Р); далее будет показано, как работать с горячими клавишами.

(Горячая клавиша — зто комбинация клавиш вида Ай+символ, где сиивол — это подчеркнутый символ метки; при нажатии горячей клавиши фокус ввода передается виджету, ассоциированному с горячей клавишей, обычно расположенному правее или ниже метки, в которой определен символ горячей клавиши.) Виджетам ск!псег. Зса1е передается в качестве родителя, как обычно, объект ае1! и ассоциированная с каждым из них переменная. Кроме того, в аргументе соввапс им передаются ссылки на объекты функций (в данном случае методы).

Эти методы будут вызываться автоматически при каждом изменении положения движка, устанавливаются минимальное (имя аргумента (гоа записывается с завершающим символом подчеркивания, потому что ггои — это зарезервированное ключевое слово) и максимальное (Сс) значения и определяется горизонтальная ориентация. Для некоторых движков указывается разрешение (геао1ш!Оп) — шаг изменения значений, а для гасеЯса1е — еще и число отображаемых цифр.

Характеристики

Тип файла
DJVU-файл
Размер
6,88 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6458
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее