Найти в Дзене
Рабочий уголок

Tkinter Python головного мозга (GUI)

Версия Python 3.11.9 - https://www.python.org/downloads/ Проект https://cloud.mail.ru/public/BU9w/47wsTXarf Ранее в первой статье я написал о своей программе "Пчела" v1.0.0, которая собирает информацию о системе. Теперь пришло время вывести ее на новый уровень и реализовать для нее графический интерфейс пользователя - GUI. На данный момент программа использует всего одну стороннюю библиотеку - WMI. Чтобы не расширять номенклатуру библиотек, воспользуюсь встроенным в python пакетом - Tkinter. Tkinter - это виджет с графическим интерфейсом пользователя (GUI), созданный для Python. Так как установка дополнительных пакетов не нужна, приступим к разработке блок схемы окна программы. Зачем? Во время продумывания структуры программы появится четкое понимание: что я хочу увидеть в программе, где это будет находиться и какой функционал выполнять. После долгих часов безделья и раздумья получилась вот такая блок-схема. Пройдемся по цветам: Для реализации такого приложения потребовалось 3 класса:
Оглавление

Версия Python 3.11.9 - https://www.python.org/downloads/

Проект https://cloud.mail.ru/public/BU9w/47wsTXarf

Ранее в первой статье я написал о своей программе "Пчела" v1.0.0, которая собирает информацию о системе. Теперь пришло время вывести ее на новый уровень и реализовать для нее графический интерфейс пользователя - GUI.

Анализ.

На данный момент программа использует всего одну стороннюю библиотеку - WMI. Чтобы не расширять номенклатуру библиотек, воспользуюсь встроенным в python пакетом - Tkinter.

Tkinter - это виджет с графическим интерфейсом пользователя (GUI), созданный для Python.

Так как установка дополнительных пакетов не нужна, приступим к разработке блок схемы окна программы.

Зачем? Во время продумывания структуры программы появится четкое понимание: что я хочу увидеть в программе, где это будет находиться и какой функционал выполнять.

Блок-схема.

После долгих часов безделья и раздумья получилась вот такая блок-схема.

-2

Пройдемся по цветам:

  • Основное окно выделено серым цветом.
  • Оранжевым цветом выделены неактивные вкладки с компонентами ПК.
  • Красным цветом выделены устройства, в них будут расположены параметры и информация о них.
  • Желтым цветом выделен блок с кнопкой, которая запускает процесс сбора информации.
  • Зеленым цветом выделен блок, в который будет выводиться важная системная информация: работа начата, работа завершена, ошибка и т.д..

Для реализации такого приложения потребовалось 3 класса:

  1. Класс Bee(Tk) реализует запуск цикла событий, подтягивает настройки приложения и является корнем (root) приложения.
  2. Класс App(Frame) реализует главное окно программы. Будет содержать вкладки, кнопку и системное окно для вывода информации.
  3. Класс Component(Frame) реализует содержимое вкладки: устройства, параметры и информация о них.

Класс Bee.

Данный класс кроме конструктора содержит два метода:

  • Метод _init_config(), который подтягивает все необходимые конфигурации: цвет фона, размер окна, иконка, заголовок.
  • Метод run_app(), который создает объект класса App и запускает цикл обработки событий.

Класс App.

Здесь все не многим сложнее. Класс содержит три метода:

  • Метод_update_config() - вызывается нажатием кнопки "Обновить конфигурацию" и выполняет логику: найти информацию для каждого параметра устройства и передать системное сообщение методу _update_system_info().
  • Метод _update_system_info() - непосредственно выводит на экран переданное ему сообщение.
  • Метод _gather_information() - никак не изменился с прошлой версии программы. Он отвечает за поиск информации по параметрам.

Класс Component.

Класс также содержит три метода:

  • Метод create_a_component() - принимает на вход информацию и отфильтровывает ее по нужным параметрам, затем создает Frame который наполняет контентом.
  • Метод clear_widget() - очищает вкладку от виджетов, что бы заполнить ее другими данными. Актуально для повторного нажатия кнопки.
  • Метод get_name() - возвращает имя компонента.

Результат.

Программные файлы с комментариями и всеми необходимыми материалами можно найти здесь.

А теперь запустим "Зверя"!

-3

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

А как вам кажется, чего не хватает программе?