Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Алгоритмизация и программирование. Язык Python. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
06.09.2026
Размер:
1 Мб
Скачать
Рис. 21. Окно со списком и полосой прокрутки по вертикали
Параметр
Назначение
curselection():
Возвращает набор индексов выделенных элементов
delete(first, last = None):
Удаляет элементы с индексами из диапазона [first, last]. Ес­ли второй параметр опущен, то удаляет только один эле­мент по индексу first
get(first, last = None):
Возвращает кортеж, который содержит текст элементов с индексами из дипазона [first, last]. Если второй параметр
опущен, возвращается только текст элемента с индексом
first
insert(index, element):
Вставляет элемент по определенному индексу
size():
Возвращает количество элементов
Listbox имеет ряд методов для управления поведением элемента и его со­держимым. В табл. 15 представлены основные методы.
Т а б л и ц а 15. Основные методы элемента Entry
Пример
from tkinter import *
# удаление выделенного элемента
def delete(): selection = languages_listbox.curselection()
# мы можем получить удаляемый элемент по индексу # selected_language = languages_listbox.get(selection[0])
languages_listbox.delete(selection[0])
# добавление нового элемента
def add(): new_language = language_entry.get() languages_listbox.insert(0, new_language) root = Tk() root.title("GUI на Python")
# текстовое поле и кнопка для добавления в список
language_entry = Entry(width=40)
111
language_entry.grid(column=0, row=0, padx=6, pady=6)
# первая кнопка вызывает функцию add(), которая получает введенное в тек- стовое поле значение и добавляет его на первое место в списке с помощью ме­тода insert()
add_button = Button(text="Добавить", command=add).grid(column=1, row=0, padx=6, pady=6)
# создаем список
languages_listbox = Listbox() languages_listbox.grid(row=1, column=0, columnspan=2, sticky=W+E, padx=5, pady=5)
# добавляем в список начальные элементы
languages_listbox.insert(END, "Python") languages_listbox.insert(END, "C#")
# вторая кнопка по нажатию удаляет выделенный элемент.
delete_button = Button(text="Удалить", command=delete).grid(row=2, column=1, padx=5, pady=5) root.mainloop()
На рис. 22 представлено окно, являющееся результатом выполнения про­граммного кода.
Рис. 22. Окно для добавления/удаления значения
9.9. Меню
Для создания иерархического меню в tkinter и Python применяется кон- структор Menu. Меню может содержать много элементов, причем эти элементы
сами могут представлять меню и содержать другие элементы. В зависимости от
того, какой тип элементов добавляется в меню, будет отличаться метод, ис­пользуемый для их добавления. В табл. 16 представлены основные меню.
112
Т а б л и ц а 16. Основные методы элемента Menu
Параметр
Назначение
add_command(options):
Добавляет элемент меню через параметр options
add_cascade(options):
Добавляет элемент меню, который в свою очередь может
представлять подменю
add_separator():
Добавляет линию-разграничитель
add_radiobutton(options):
Добавляет в меню переключатель
add_checkbutton(options):
Добавляет в меню флажок
Пример
from tkinter import * root = Tk() root.title("GUI на Python") root.geometry("300x250") main_menu = Menu() main_menu.add_cascade(label="File") main_menu.add_cascade(label="Edit") main_menu.add_cascade(label="View") root.config(menu=main_menu) # установление для текущего окна с помощью
параметра menu в методе config()
root.mainloop()
На рис. 23 представлено окно, являющееся результатом выполнения про­граммного кода.
Рис. 23. Окно главного меню
113
Пример
# формирование ниспадающего меню (подменю)
from tkinter import * root = Tk() root.title("GUI на Python") root.geometry("300x250") main_menu = Menu() file_menu = Menu() file_menu.add_command(label="New") file_menu.add_command(label="Save") file_menu.add_command(label="Open") file_menu.add_separator() file_menu.add_command(label="Exit") # подменю первого пункта главного меню main_menu.add_cascade(label="File", menu=file_menu) main_menu.add_cascade(label="Edit") main_menu.add_cascade(label="View") root.config(menu=main_menu) root.mainloop()
На рис. 24 представлено окно, являющееся результатом выполнения про­граммного кода.
Рис. 24. Окно подменю первого пункта главного меню
Для настройки меню можно задать в конструкторе Menu опции, пред­ставленные в табл. 17.
114
Т а б л и ц а 17. Основные опции конструктора Menu
Параметр
Назначение
activebackground:
Цвет активного пункта меню
activeborderwidth:
Толщина границы активного пункта меню
activeforeground:
Цвет текста активного пункта меню
bg:
Фоновый цвет
bd:
Толщина границы
cursor:
Курсор указателя мыши при наведении на меню
disabledforeground:
Цвет, когда меню находится в состоянии DISABLED
font:
Шрифт текста
fg:
Цвет текста
tearoff:
Меню может быть отсоединено от графического окна.
В частности, при создании подменю а скриншоте можно увидеть прерывающуюся линию в верху подменю, за кото-
рую его можно отсоединить. Однако при значении tearoff=0 подменю не сможет быть отсоединено.
Пример
from tkinter import * root = Tk() root.title("GUI на Python") root.geometry("300x250") main_menu = Menu() file_menu = Menu(font=("Verdana", 13, "bold"), tearoff=0) file_menu.add_command(label="New") file_menu.add_command(label="Save") file_menu.add_command(label="Open") file_menu.add_separator() file_menu.add_command(label="Exit") main_menu.add_cascade(label="File", menu=file_menu) main_menu.add_cascade(label="Edit") main_menu.add_cascade(label="View") root.config(menu=main_menu) root.mainloop()
На рис. 25 представлено окно, являющееся результатом выполнения про­граммного кода.
115
Рис. 25. Окно подменю первого пункта главного меню
Отличительной особенностью элементов меню является способность реа-
гировать на выбор пользователя, путем нажатия на пункт (подпункт) меню. Для этого каждому элементу меню задают параметр command, который устанавли­вает ссылку на функцию, выполняемую при нажатии на нее.
Пример
from tkinter import * from tkinter import messagebox def edit_click(): messagebox.showinfo("GUI Python", "Нажата опция Edit") root = Tk() root.title("GUI на Python") root.geometry("300x250") main_menu = Menu() main_menu.add_cascade(label="File") main_menu.add_cascade(label="Edit", command=edit_click) main_menu.add_cascade(label="View") root.config(menu=main_menu) root.mainloop()
116
ЗАКЛЮЧЕНИЕ
Язык программирования Python уже давно занял лидирующее место сре-
ди всех языков программирования. По количеству сфер применения и возмож­ностям он конкурирует с такими языками, как C++ и JavaScript. Язык Python гораздо моложе, чем классические языки программирования, но он является идеальным для решении задач из разных сфер деятельности человека. Python
используется в таких крупных компаниях, как Pixar, NASA.
Python обладает динамической типизацией, что означает отсутствие
необходимости объявлять тип переменных, приводить один тип к другому и за-
думываться о каких-либо ограничениях по количеству символов, содержащихся
в этих переменных. Динамическая типизация облегчает участь программистов, потому что они не должны глубоко вникать в устройство оперативной памяти и
центрального процессора, чтобы понимать, как устроен язык.
Язык обладает мощнейшими возможностями объектно-ориентированного программирования. Логическая структура программы на языке Python может
быть построена так, что её исходный код уместится в сравнительно малое ко-
личество строк.
Python является языком общего назначения. Это означает, что он может
применяться в абсолютно любой сфере разработки программного обеспечения: сложные математические системы с помощью модуля NumPy (альтернатива
MatLab), веб-приложения с помощью Django, графические интерфейсы с по- мощью Tkinter, игры с помощью PyGame и т. д.
117
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Сузи, Р. А. Язык программирования Python [Электронный ресурс] /
Р. А. Сузи. – Электрон. текстовые данные. – М.: Интернет-Университет Ин­формационных Технологий (ИНТУИТ), 2016. – 350 c. – 5-9556-0058-2. – Режим доступа: http://www.iprbookshop.ru/52211.html
2. Уэс, Маккинли. Python и анализ данных [Электронный ресурс] / Мак-
кинли Уэс; пер. А. А. Слинкин. – Электрон.текстовые данные. – Саратов: Про­фобразование, 2017. – 482 c. – 978-5-4488-0046-7. – Режим доступа: http://www.
iprbookshop.ru/64058.html
3. Буйначев, С. К. Основы программирования на языке Python [Электрон-
ный ресурс]: учеб. пособие / С. К. Буйначев, Н. Ю. Боклаг; под ред. Ю. В. Пе­син. – Электрон.текстовые данные. – Екатеринбург: Уральский федеральный университет, ЭБС АСВ, 2014. – 92 c. – 978-5-7996-1198-9. – Режим доступа:
http://www.iprbookshop.ru/66183.html
4. Бэрри, Пол. Изучаем программирование на Python: пер. с англ. / Пол
Бэрри, М. А. Райтман. – М.: Эксмо, 2019. – 624 с.
5. https://metanit.com/python/tutorial/
6. https://all-python.ru/
7. https://pythonworld.ru/samouchitel-python
118
Учебное издание
Дроботун Нина Владимировна
Рудков Евгений Олегович
Баев Никина Александрович
Алгоритмизация и программирование.
Язык PYTHON
Учебное пособие
Издательский редактор Т. Н. Козлова
Учебное электронное издание сетевого распространения
Системные требования:
электронное устройство с программным обеспечением
для воспроизведения файлов формата PDF
Режим доступа: http://publish.sutd.ru/tp_get_file.php?id=202064, по паролю.
– Загл. с экрана.
Дата подписания к использованию 29.02.2020 г. Рег. № 64/20
ФГБОУ ВО «СПбГУПТД»
Юридический и почтовый адрес:
191186, Санкт-Петербург, ул. Большая Морская, 18.
http://sutd.ru/
119
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]