Создание оконных приложений на языке программирования Python
Создание приложений с графическим интерфейсом с использованием различных графических библиотек с помощью языка Python. Рассмотрение стандартной графической библиотеки tkinter. Изменение цвета текста и фона у Button. Анализ добавления виджета Combobox.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 14.11.2023 |
Размер файла | 230,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
КАЗАХСКИЙ АГРОТЕХНИЧЕСКИЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ им. С.СЕЙФУЛЛИНА
ЛАБОРАТОРНАЯ РАБОТА № 9
ПО ДИСЦИПЛИНЕ: «АЛГОРИТМЫ, СТРУКТУРЫ ДАННЫХ И ПРОГРАММИРОВАНИЕ»
ТЕМА: Cоздание оконных приложений на языке программирования Python
АСТАНА 2023
Язык Python позволяет создавать приложения с графическим интерфейсом, для этого используются различные графические библиотеки. Остановимся на рассмотрении стандартной (входит в стандартный комплект Python) графической библиотеки tkinter. Первым делом при работе с tkinter необходимо создать главное (корневое) окно, в котором размещаются остальные графические элементы - виджеты. Некоторые виджеты (фреймы) используются для группировки других виджетов внутри себя. Есть специальный виджет кнопка, при нажатии на который происходят некоторые события (события можно обрабатывать).
Пример 1
В отдельном файле (mytk1.py, но не с именем tkinter.py!) выполним следующую простейшую программу для отображения ГЛАВНОГО ОКНА:
# Подключаем модуль, содержащий методы для работы с графикой
import tkinter
# Создаем главное (корневое) окно,
# в переменную window записываем ссылку на объект класса Tk
window = tkinter.Tk()
# Задаем обработчик событий для корневого окна
window.mainloop()
Результат выполнения программы:
Появилось полноценное окно, которое можно свернуть, растянуть или закрыть! И это только три строчки кода!
В оконных приложениях важно нажатие мыши, т.к. от этого зависит, например, какой пункт меню выберет пользователь
Пример 2
Следующий пример демонстрирует создание ВИДЖЕТА LABEL:
import tkinter
window = tkinter.Tk()
# Создаем объект-виджет класса Label в корневом окне window
# text - параметр для задания отображаемого текста
label = tkinter.Label (window, text = "Это текст в окне!")
# Отображаем виджет с помощью менеджера pack
label.pack()
window.mainloop()
Результат работы программы:
Пример 3
Следующий пример демонстрирует размещение ВИДЖЕТОВ ВО ФРЕЙМЕ:
import tkinter
window = tkinter.Tk()
# Создаем фрейм в главном окне
frame = tkinter.Frame(window)
frame.pack()
# Создаем виджеты и помещаем их во фрейме
frame first = tkinter.Label (frame, text='First label')
# Отображаем виджет с помощью менеджера pack
first.pack()
second = tkinter.Label (frame, text='Second label')
second.pack()
third = tkinter.Label (frame, text='Third label')
third.pack()
window.mainloop()
Пример выполнения программы:
Пример 4
Можно изменять ПАРАМЕТРЫ ФРЕЙМА в момент создания объекта
import tkinter
window = tkinter.Tk()
frame = tkinter.Frame(window)
frame.pack()
# Можем изменять параметры фрейма:
frame2 = tkinter.Frame(window, borderwidth=4, relief=tkinter.GROOVE)
frame2.pack()
# Размещаем виджет в первом фрейме
(frame) first = tkinter.Label (frame, text='First label')
first.pack()
# Размещаем виджеты во втором фрейме (frame2)
second = tkinter.Label (frame2, text='Second label')
second.pack()
third = tkinter.Label (frame2, text='Third label')
third.pack()
window.mainloop()
Результат работы программы:
Пример 5
В следующем примере для отображения в ВИДЖЕТЕ LABEL содержимого переменной, используется переменная data класса StringVar (из модуля tkinter). В дальнейшем из примеров станет понятнее, почему в tkinter используются переменные собственного класса.
import tkinter
window = tkinter.Tk()
# Создаем объект класса StringVar и присваиваем указатель на него data
# (создаем строковую переменную, с которой умеет работать tkinter)
data = tkinter.StringVar()
# Метод set класса StringVar позволяет изменить содержимое переменной:
data.set ('Данные в окне')
# textvariable присваиваем ссылку на строковый объект из переменной data
label = tkinter.Label (window, textvariable = data)
label.pack()
window.mainloop()
Результат работы программы:
Пример 6
Шаблон «Модель-вид-контроллер» на примере модуля tkinter
Следующий пример показывает, каким образом использовать виджет (Entry) для ввода данных: графический интерфейс виджет
import tkinter
window = tkinter.Tk()
frame = tkinter.Frame(window) frame.pack()
var = tkinter.StringVar()
# Обновление содержимого переменной происходит в режиме реального времени label = tkinter.Label(frame, textvariable=var)
label.pack()
# Пробуем набрать текст в появившемся поле для ввода entry = tkinter.Entry(frame, textvariable=var) entry.pack()
window.mainloop()
Запустим программу и попробуем набрать произвольный текст:
Пример 6
(Следующий пример демонстрирует возможности обработки событий при нажатии на кнопку (ВИДЖЕТ BUTTON)):
import tkinter
# Контроллер: функция вызывается в момент нажатия на кнопку
def click():
# метод get() возвращает текущее значение counter
# метод set() - устанавливает новое значение
counter counter.set (counter.get() + 1)
window = tkinter.Tk()
# Модель: создаем объект класса IntVar
counter = tkinter.IntVar()
# Обнуляем созданный объект с помощью метода set()
counter.set (0) frame = tkinter.
Frame (window)
frame.pack()
# Создаем кнопку и указываем обработчик (функция click) при нажатии на нее
button = tkinter.Button (frame, text='Click', command=click)
button.pack()
# Вид: в реальном времени обновляется содержимое виджета Label
label = tkinter.Label (frame, textvariable=counter)
label.pack()
window.mainloop()
Результат работы программы:
Пример 7
Более сложный пример с двумя кнопками и двумя обработчиками событий (click_up, click_down):
import tkinter
window = tkinter.Tk()
# Модель:
counter = tkinter.IntVar()
counter.set(0)
# Два контроллера:
def click_up():
counter.set (counter.get() + 1)
def click_down():
counter.set (counter.get() - 1)
# Вид:
frame = tkinter.Frame (window)
frame.pack()
button = tkinter.Button (frame, text='Up', command=click_up)
button.pack()
button = tkinter.Button (frame, text='Down', command=click_down)
button.pack()
label = tkinter.Label (frame, textvariable=counter)
label.pack()
window.mainloop()
Пример 8
Tkinter позволяет изменять параметры виджетов в момент их создания:
import tkinter
window = tkinter.Tk()
# Создаем кнопку, изменяем шрифт с помощью кортежа button = tkinter.Button(window, text='Hello',
font=('Courier', 14, 'bold italic'))
button.pack() window.mainlo)
Результат выполнения программы:
В следующем примере изменяются параметры виджета Label:
import tkinter
window = tkinter.Tk()
# Изменяем фон, цвет текста:
button = tkinter.Label(window, text='Hello', bg='green', fg='white') button.pack()
window.mainloop()
Результат выполнения программы:
Пример 9
Менеджер расположения (геометрии) pack тоже имеет параметры:
import tkinter
window = tkinter.Tk()
frame = tkinter.Frame (window) frame.pack()
label = tkinter.Label(frame,text='Name')
# Выравнивание по левому краю
label.pack (side='left') entry = tkinter.Entry (frame) entry.pack (side='left') window.mainloop()
Результат выполнения программы:
Настройка размеров окна приложения
Мы можем установить размер окна по умолчанию, используя функцию geometry следующим образом:
window.geometry('400x250')
В приведенной выше строке устанавливается окно шириной до 400 пикселей и высотой до 250 пикселей.
Изменение цвета текста и фона у Button
Вы можете поменять цвет текста кнопки или любого другого виджета, используя свойство fg. Кроме того, вы можете поменять цвет фона любого виджета, используя свойство bg.
btn = Button(window, text="Не нажимать!", bg="black", fg="red")
Добавление виджета Combobox
Чтобы добавить виджет поля с выпадающем списком, используйте класс Combobox из ttk следующим образом:
from tkinter.ttk import Combobox
combo = Combobox(window)
Затем добавьте свои значения в поле со списком.
from tkinter import *
from tkinter.ttk import Combobox
window = Tk()
window.title("Добро пожаловать в приложение PythonRu")
window.geometry('400x250')
combo = Combobox(window)
combo['values'] = (1, 2, 3, 4, 5, "Текст")
combo.current(1) # установите вариант по умолчанию
combo.grid(column=0, row=0)
window.mainloop()
Мы добавляем элементы combobox, используя значения tuple.
Чтобы установить выбранный элемент, вы можете передать индекс нужного элемента текущей функции.
Чтобы получить элемент select, вы можете использовать функцию get вот таким образом:
combo.get()
Добавление виджета Checkbutton (чекбокса)
С целью создания виджета checkbutton, используйте класс Checkbutton:
from tkinter.ttk import Checkbutton
chk = Checkbutton(window, text='Выбрать')
Кроме того, вы можете задать значение по умолчанию, передав его в параметр var в Checkbutton:
from tkinter import *
from tkinter.ttk import Checkbutton
window = Tk()
window.title("Добро пожаловать в приложение PythonRu")
window.geometry('400x250')
chk_state = BooleanVar()
chk_state.set(True) # задайте проверку состояния чекбокса
chk = Checkbutton(window, text='Выбрать', var=chk_state)
chk.grid(column=0, row=0)
window.mainloop()
Самостоятельная работа 1
Напишите программу, переводящую градусы по Фаренгейту в градусы по Цельсию.
Интерфейс работы с программой представлен ниже. TF = 9/5 * TC + 32
Размещено на http://www.allbest.ru/
Самостоятельная работа 2
Напишите программу, которая отображает случайное слово на русском языке (тип данных dict). Пользователь пытается угадать его на английском (или другом языке).
Дополнительно ограничить работу программы по числу неправильно угаданных слов.
Размещено на Allbest.ru
...Подобные документы
Разработка программ средствами библиотеки tkinter на языке Python. Изучение основы работы в текстовом редакторе Word. Описание авторской идеи анимации. Использование базовых команд и конструкций. Процесс проектирования и алгоритм разработанной программы.
контрольная работа [125,3 K], добавлен 11.11.2014Программное обеспечение Python и ее основные характеристики, как программной среды. Общие сведения о языке программирования Python. Особенности применения ППП Python (x,y) с использованием его различных вычислительных модулей в учебном процессе.
дипломная работа [2,9 M], добавлен 07.04.2019Отличительные особенности языка программирования Python: низкий порог вхождения, минималистичный язык, краткий код, поддержка математических вычислений, большое количество развитых web-фреймворков. Традиционная модель выполнения программ на языке Python.
реферат [51,9 K], добавлен 18.01.2015Разработка структуры базы данных для хранения дипломных проектов в среде объектно-ориентированного программирования Python. Создание внешнего вида окон ввода-вывода информации, технологии переходов. Листинг программы с пояснениями; направления улучшения.
курсовая работа [3,1 M], добавлен 27.02.2015Основные принципы написания оконных приложений с графическим интерфейсом на языке Java в среде Eclipse. Управление компоновками компонентов: показ диалоговых окон, вывод графической информации. Структура приложения и размещение элементов интерфейса.
лабораторная работа [1,1 M], добавлен 01.05.2014Понятие и характеристики облачных технологий, модели их развертывания, технологические процессы, аспекты экономики и критика. Язык программирования Python, оценка функциональности, сравнение с аналогами. Управление облаком в Python на примере libcloud.
курсовая работа [43,0 K], добавлен 08.06.2014Use case-диаграмма. Оценка трудоёмкости и сроков разработки проекта с использованием языка Python по методикам CETIN И COCOMO-II. Проектирование информационной системы. Разработка приложения с использованием Django: создание шаблонов, моделей и пр.
дипломная работа [1,3 M], добавлен 10.07.2017Исторические аспекты развития линии "Алгоритмизация и программирование" в старшей школе. Изучение языка программирования Python с применением дистанционных курсов Coursera. Методическая система обучения программированию с использованием Coursera.
дипломная работа [808,8 K], добавлен 13.12.2017Исследование возможностей и областей использования языка программирования JavaScript. Сравнительный анализ языков программирования JavaScript и PHP. Разработка интерактивного Web-приложения на примере теста по теме "Программирование на языке Delphi".
практическая работа [26,0 K], добавлен 04.02.2015Теоретические основы разработки Windows-приложений с использованием библиотеки MFC. Создание приложения с помощью Visual C++. Описание логической структуры приложения. Установка и запуск программы. Входные и выходные данные. Преимущество MFC библиотек.
курсовая работа [563,2 K], добавлен 21.06.2011Принципы написания оконных приложений, представляющих данные в табличном виде и осуществляющих взаимодействие с символьными и байтовыми потоками ввода-вывода в среде Eclipse. Особенности построения приложений с расширенным графическим интерфейсом.
методичка [1,0 M], добавлен 01.05.2014Анализ основ ООП, изучение языка программирования Python, применение полученных знаний на практике для реализации предметной области. Понятие и механизм инкапсуляции. Фиксирование информационной работы отеля. Диаграмма классов. Реализация на языке Python.
курсовая работа [227,6 K], добавлен 14.05.2017Особенности программирования аркадных игр в среде Python. Краткая характеристика языка программирования Python, его особенности и синтаксис. Описание компьютерной игры "Танчики" - правила игры, пояснение ключевых строк кода. Демонстрация работы программы.
курсовая работа [160,3 K], добавлен 03.12.2014Создание приложений: ProgressBar, вычисление по формуле, двумерный массив, калькулятор, медиа-плеер, одномерный массив, список, текстовый редактор. Создание различных обработчиков событий. Разработка заставки, окна ввода пароля и главной формы.
лабораторная работа [781,7 K], добавлен 22.01.2015Преимущество построения Web-приложений для поддержки стандартных функций браузера. Настройка проекта Web-приложения. Создание и изменение исходных файлов. Изменение файла JavaServer Pages по умолчанию. Основные проблемы при выполнении Web-приложений.
контрольная работа [362,8 K], добавлен 10.11.2013Этапы развития, особенности и возможности языка программирования Java; происхождение названия. Приложения Sun Microsystems: идеи, примитивные типы. Python - высокоуровневый язык программирования общего назначения: структуры данных, синтаксис и семантика.
реферат [79,0 K], добавлен 23.06.2012Компиляция программ на языке C/C++. Компиляция нескольких файлов. Библиотеки объектных файлов. Создание статической и динамической библиотеки. Функции работы. Создание динамической библиотеки для решения системы линейных уравнений.
курсовая работа [27,4 K], добавлен 07.08.2007Сравнительная характеристика, возможности и функции языков программирования JavaScript и PHP. Основные области их использования. Разработка интерактивного Web-приложения с применением JavaScript на примере теста по теме "Программирование на языке Delphi".
курсовая работа [19,3 K], добавлен 01.07.2014Разработка Windows-приложений с использованием библиотеки MFC. Базовый набор классов, написанных на языке С++ и предназначенных для упрощения процесса программирования под Windows. Фундаментальные идеи объектно-ориентированного программирования.
курсовая работа [348,1 K], добавлен 02.07.2011Об'єктно-орієнтована мова Python - сучасна мова програмування, проста у вивченні та використанні. Наявність повної стандартної бібліотеки. Середовища програмування на Python. Механізм функціонування інтерпретатора. Колекції даних, комбіновані оператори.
презентация [753,2 K], добавлен 06.02.2014