Создание оконных приложений на языке программирования 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.2014

  • Use 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.