Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Алгоритмизация и программирование. Язык Python. Учебное пособие
.pdf
Рис. 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
