Python >

Разработка программных модулей

2024-2025 учебный год

Практические занятия

Практика 19 
Разработка приложения с использованием текстовых компонентов 
1. Виджеты в PyQt5 (часть 2). Изучите примеры и напишите с их помощью программы для создания оконных приложений посредством библиотеки PyQt5.
2. Перетаскивание (drag & drop) в PyQt5. Пример разработки оконного приложения в фреймворке Qt на Python с применением PyQt5. Напишите программы по примерам.
3. Модуль pygame.font. Пример разработки оконного приложения в на Python с применением PyGame. Напишите программы по примерам.
4. Модули pygame.image и pygame.transform. Пример разработки оконного приложения в на Python с применением PyGame. Напишите программы по примерам.
5. Напишите программу, которая из файла выбирает строки, содержащие одну, две, три и т.д. цифры и записывает каждую группу строк в отдельный файл, например digit1.txt, digits2.txt, digits3.txt и т.д. Примеры файлов со строками скачайте по ссылкам:
https://github.com/ignis-sec/Pwdb-Public
https://github.com/danielmiessler/SecLists
6. Программа должна брать список файлов из параметров командной строки и записывать в файл-архив, имя которого задано в первом параметре командной строки. Вторая программа должна извлекать файлы из архива, переданного в параметре командной строки.
7. Перемещение точки. В программе задан метод Point, содержащий один метод set_coord, который «перемещает» точку в переданные координаты. Дополните этот класс еще двумя методами:
1. __init__(self, x, y), который будет инициализировать точку в указанных координатах, и
2. move_to_origin(self), который будет отправлять точку в начало системы координат.
Начальные координаты точки и новые координаты точки для ее перемещения подаются пользователем на вход программы.
class Point():
    def set_coord(self, x=0, y=0):
        self.x = x
        self.y = y
# Ваш код
# ...
# не изменяйте код ниже, он нужен для проверки
x1 = int(input())
y1 = int(input())
p = Point(x1, y1)
print(p.__dict__)
p.move_to_origin()
print(p.__dict__)
x2 = int(input())
y2 = int(input())
p.set_coord(x2, y2)
print(p.__dict__)

Тесты
Входные данные:
2
2
7
7

Выходные данные:
{'x': 2, 'y': 2}
{'x': 0, 'y': 0}
{'x': 7, 'y': 7}

Входные данные:
1
5
15
8

Выходные данные:
{'x': 1, 'y': 5}
{'x': 0, 'y': 0}
{'x': 15, 'y': 8}
8. OpenCV. Treshold. Moments. Написать программу для демонстрации применения HSV-фильтра для отслеживания координат объекта в кадре видеопотока с помощью библиотеки компьютерного зрения OpenCV по примеру 13.3 из лекции.
9. OpenCV. Grid Tracking. Написать программу для осуществления трекинга объекта посредством HSV-фильтра в кадре видеопотока с помощью библиотеки компьютерного зрения OpenCV по примеру 14.1 из лекции.
10. OpenCV. Face Detect. Написать программу для демонстрации применения алгоритмов Хаара для детектирования лица в кадре видеопотока с помощью библиотеки компьютерного зрения OpenCV по примеру 15.1 из лекции.
11. OpenCV. Contours. Написать программу для поиска прямоугольного контура в кадре видеопотока с помощью библиотеки компьютерного зрения OpenCV по примеру 15.2 из лекции.

Дополнительные задания

1. Выполните упражнения из учебника по ссылке:
https://younglinux.info/tkinter/canvas
2. Выполните упражнения из учебника по ссылке:
https://younglinux.info/tkinter/canvasmeth
3. Выполните задачи из главы 12 «Создание приложений с графическим интерфейсом пользователя» c. 294 - 300 по учебнику
Сузи, Р. А. Язык программирования Python : учебное пособие / Р. А. Сузи. — 3-е изд. — Москва : Интернет-Университет Информационных Технологий (ИНТУИТ), Ай Пи Ар Медиа, 2020. — 350 c.
4. Выполните задачи из главы 13 «Графика. Модуль Turtle» c. 190 - 208 по учебнику
Подсадников, А В Основы программирования на языке Python 3 : учебное пособие / А. В. Подсадников, К. В. Розов, А. В. Русецкий ; Новосибирский государственный педагогический университет. - Новосибирск : НГПУ, 2019. - 221 с.
5. Выполнить примеры и решить задачи
https://gvard.github.io/py/turtle
6. Выполнить примеры и решить задачи
https://gvard.github.io/py
Домашнее задание
Разработка приложения с использованием текстовых компонентов.
Компоненты вывода статического текста, радиокнопок, флагов, списков выбора.
Многострочные текстовые поля. 
Приложение простейшего текстового редактора.