Файл: Разработка проекта для визуализации данных на языке Python.doc

ВУЗ: Не указан

Категория: Реферат

Дисциплина: Не указана

Добавлен: 24.10.2023

Просмотров: 114

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


В работе были использованы следующие компоненты PyQt:

  • окно;

  • надпись;

  • командная кнопка;

  • однострочное текстовое поле;

  • раскрывающийся список;

  • менеджер компоновки;

  • таблица.

Создание и управление окном производится посредством класса QWidjet. QWidjet является базовым классом для всех компонентов, поэтому любой компонент, не имеющий родителя будет обладать собственным окном[5].

Надпись – элемент, содержащий текст, может применяться для информирования, вывода подсказок, содержания html-текста и т.д., реализуется классом QLabel. В данной программе используется для подписей полей в окне добавления записи в БД.

Командная кнопка реализуется с помощью класса QPushButton. При нажатии на командную кнопку создается сигнал, при получении которого указанная в методе connect( ) функция выполняет содержащиеся в ней инструкции. В данной программе используется для запуска функций удаления, добавления, редактирования записей и поиска.

Однострочное текстовое поле предназначено для ввода и редактирования текста небольшого объема, реализуется классом QLineEdit[5]. В данной программе используется для ввода строки, по которой будет осуществляться поиск и для ввода значений новой записи.

С помощью класса QComboBox реализуется раскрывающийся список, предоставляющий возможность выбора элемента. В данной программе используется для выбора условий поиска по диапазону.

Класс QGridLayout позволяет выровнять элементы в окне по сетке. В данной программе используется для расположения элементов в обоих окнах.

Таблица реализуется с помощью класса QTableView. Позволяет отобразить данные из БД, не нарушая их структуры. В данной программе используется для визуализации данных БД и их редактирования путем ввода нового значения в ячейку.

2 Разбор кода программы

1 – 3 строки: подключение модулей sys, QtCore и QtGui, SQLite3, которые необходимы для создания приложения, использования элементов графического интерфейса, использования sql-команд при работе с БД; 4 строка: создание объекта приложения; 5 – 6 строки: создание соединения с базой данных example.db и объекта Cursor для работы с БД (рисунок 1).



Рисунок 1

7 – 9 строки: функция, заполняющая ячейку таблицы текстом, где входные параметры имя таблицы GUI, индекс ячейки и текст (рисунок 2).




Рисунок 2

10 – 14 строки: функция, получающая текст из ячейки таблицы или пустую строку при отсутствии текста в ячейке, где входные параметры имя таблицы GUI и индексы ячейки (рисунок 3).



Рисунок 3

15 – 21 строки: функция, заполняющая таблицу значениями из таблицы текущей БД, где входные параметры имя таблицы в БД, имя таблицы GUI, количество полей (столбцов) в таблице, j – счетчик строк, i – счетчик столбцов, row – выборка всех записей из таблицы БД (рисунок 4).



Рисунок 4

23 строка: создание класса, который будет содержать операции для кнопок; 24 – 34 строки: инициализация входящих параметров класса – имя таблицы GUI, имя текстового поля, количество столбцов, имена раскрывающихся списков, имя таблицы текущей БД, списки с именами полей в БД и именами полей в таблице GUI, строка типа ‘?,?,…,?’ с количеством записей, имя ключевого поля; 35 и 36 строки: получение текущего количества записей в БД (рисунок 5).



Рисунок 5

37 строка: создание функции в классе Operation для добавления записи, где arg – список значений новой строки; 38 и 45 строки: отключение сортировки на время добавления записи; 39 строка: создание новой строки в таблице GUI; 40 – 42 строки: добавление записи в БД и сохранение изменений; 43 и 44 строки: заполнение новой строки GUI соответствующими значениями из arg (рисунок 6).



Рисунок 6

46 строка: создание функции в классе Operation для удаления записи; 47 и 48 строки: получение индекса выбранной строки и текста ключевого поля; 49 строка: удаление строки из таблицы GUI; 50 – 52 строки: удаление строки из таблицы БД и сохранение изменений (рисунок 7).



Рисунок 7

53 – 58 строки: функция в классе Operation для внесения изменения в запись, где входящие параметры индексы изменяемой ячейки; функция вносит изменения в запись БД в соответствии с изменением значений в ячейках таблицы GUI и сохраняет изменения (рисунок 8).




Рисунок 8

59 – 69 строки: функция в классе Operation для поиска строк, производит поиск по вхождению подстроки в строку, отображает только те строки GUI, в ячейках которых нашлась искомая подстрока, остальные строки скрывает; k – флажок для строк, которые нужно отобразить; i – счетчик строк; j – счетчик столбцов (рисунок 9).



Рисунок 9

70 – 72 строки: функция в классе Operation, сбрасывающая результаты поиска, отображает все строки в таблице GUI (рисунок 10).



Рисунок 10

73 строка: создание функции в классе Operation, которая будет проводить поиск по диапазону; k – флажок для строк, которые нужно отобразить; i – счетчик строк; t – значение, по которому проводится сравнение; t2 – значение ячейки, с которой проводится сравнение; 76 – 78 строки: определение номера столбца, по которому проводится сравнение, имя столбца выбирается пользователем в раскрывающемся списке cbox2, выбор знака сравнения выбирается пользователем в раскрывающемся списке cbox1; 79 – 86 строки: отображение всех строк GUI, значения ячеек которых по выбранному столбцу меньше указанного значения; 87 – 94 строки: отображение всех строк GUI, значения ячеек которых по выбранному столбцу больше заданного значения (рисунок 11).



Рисунок 11

97 строчка: создание функции, которая будет создавать модальное окно для добавления новой записи; 98 – 101 строчки: функция, которая считывает введенные в текстовые поля значения, вызывает функцию добавления записи класса Operation, передает в нее список значений и закрывает модальное окно (рисунок 12)



Рисунок 12

102 – 136 строки: тело функции Ins; 102 – 104 строки: создание модального окна, блокирующего основное; 105 и 122 – 135 строки: создание табличной разметки окна и размещение в ней элементов; 106 – 111 строки: создание текстовых полей для ввода значений новой записи; 112 – 117 строки: создание надписей, которые будут указывать названия колонок таблицы для текстовых полей; 118 – 121 строки: создание кнопки и установка вызова функции Ins0 на ее нажатие, после чего функция Ins0 запустит функцию добавления записи в таблицы БД и GUI; 136 строка: отображение модального окна (рисунок 13).




Рисунок 13

138 – 141 строки: задание стартовых параметров БД – список имен колонок на русском языке, список имен полей БД, количество полей в БД, имя таблицы БД, текущее количество записей в БД (рисунок 14).



Рисунок 14

145 и 146 строки: создание основного окна для таблицы; 146 – 151 строки: создание и заполнение таблицы GUI, установка размеров ячеек и самой таблицы; 152 строка: включение встроенной в таблицу GUI сортировки по столбцам (рисунок 15).



Рисунок 15

153 – 163 строки: создание кнопок для управления таблицей (рисунок 16).



Рисунок 16

164 – 166 строки: создание раскрывающегося списка для выбора знака сравнения при поиске по диапазону; 167 – 169 строки: создание раскрывающегося списка для выбора столбца для поиска по диапазону; 170 строка: создание текстового поля для ввода значения для поиска (рисунок 17).



Рисунок 17

171 – 182 строки: создание табличной разметки окна и размещение в ней элементов; 183 строка: автоматическая установка размеров окна с учетом содержимого (рисунок 18).



Рисунок 18

184 строка: создание экземпляра класса Operation с нужными входными параметрами; 185 – 189: вызов функций по щелчку соответствующих им кнопок; 190 – 192 строки: вызов функции изменения соответствующих записей в БД при изменении ячейки таблицы с индексами i, j (рисунок 19).



Рисунок 19

193 строка: отображение основного окна; 194 строка: функция модуля sys для завершения программы; 195 строка: сохранение всех изменений в БД; 196 строка: закрытие соединения с БД (рисунок 20).




Рисунок 20

Заключение

В процессе работы были выявлены и рассмотрены основные особенности языка программирования Python:

  • программное обеспечение;

  • высокая скорость разработки;

  • переносимость программ;

  • библиотеки;

  • широкие возможности применения;

  • расширяемость;

  • удобство использования;

  • встроенные типы данных

  • возможности использования классов.

В работе были рассмотрены основы подключения к базам данных и взаимодействия с ними. Описаны основные методы и SQL-команды для создания базы данных, соединения с ней, сохранения результатов транзакций и закрытия соединения, удаления, добавления и редактирования записей, осуществления различных выборок из базы данных.

Так как написанная без графического интерфейса программа не актуальна на данный момент, необходимо было выбрать библиотеку графического интерфейса для написания программы. В результате проведенного сравнения двух разных GUI для языка Python – PyQt и Tkinter – выявлены преимущества библиотеки Qt, которая и была выбрана для написания графического интерфейса. Преимущества PyQt:

  • большая база компонентов;

  • красивый внешний вид компонентов;

  • хорошая документация;

  • универсальность.

В результате данной работы была написана программа на языке Python, реализующая визуальный интерфейс для готовой базы данных. Благодаря упрощенному синтаксису и структуре языка программа имеет относительно небольшой код – 197 строк. Программа реализована с использованием большого количества функций и одного пользовательского класса.

Программа имеет простой интерфейс, позволяющий легко выполнить требуемые операции над базой данных. Он состоит одной таблицы, пяти управляющих кнопок, двух раскрывающихся списков и нескольких текстовых полей и надписей. Так же для удобства часть программы имеет собственное модально окно, блокирующее основное.

Программа позволяет выполнить следующие действия:

  • удалить выбранную запись одним кликом кнопки;

  • добавить новую запись посредством модального окна и нажатия двух кнопок;

  • изменить запись двойным щелчком по таблице;

  • выполнить поиск по ключевому слову или значению одним кликом соответствующей кнопки;

  • выполнить поиск по диапазону меньше или больше ключевого значения с помощью выбора двух условий поиска и одного клика соответствующей кнопки;

  • выполнить сортировку по выбранному полю щелчком на заголовок поля в таблице.