создание десктопных приложений на python

Топ-5 лучших библиотек графического интерфейса Python

В этой статье мы рассмотрим 5 лучших библиотек графического интерфейса Python, которые вы можете использовать в своих проектах. Продолжайте читать, чтобы узнать о них больше.

В этой статье мы рассмотрим 5 лучших библиотек графического интерфейса Python, которые вы можете использовать в своих проектах. Продолжайте читать, чтобы узнать о них больше.

Что такое графический интерфейс?

Графический интерфейс пользователя-это интерактивная среда для получения ответов от пользователей в различных ситуациях, таких как формы, документы, тесты и т.д. Он предоставляет пользователю хороший интерактивный экран, чем традиционный интерфейс командной строки (CLI).

Список лучших библиотек графического интерфейса Python

Давайте сразу перейдем к этому и рассмотрим лучшие библиотеки графического интерфейса для Python.

1. PyQt5

PyQt5-это графический пользовательский интерфейс (GUI) для Python. Он очень популярен среди разработчиков, и графический интерфейс может быть создан с помощью кодирования или QT-дизайнера. Фреймворк разработки QT-это визуальный фреймворк, который позволяет перетаскивать виджеты для создания пользовательских интерфейсов.

Это бесплатное программное обеспечение с открытым исходным кодом для привязки и реализовано для кросс-платформенной платформы разработки приложений. Он используется в Windows, Mac, Android, Linux и Raspberry PI.

Для установки PyQt5 вы можете использовать следующую команду:

Здесь демонстрируется простой код:

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

Команда разработчиков ScienceSoft Python подчеркивает преимущества использования PyQt:

PyQt-это зрелый набор привязок Python к Qt для кросс-платформенной разработки настольных приложений. Он предлагает богатый выбор встроенных виджетов и инструментов для создания пользовательских виджетов для формирования сложных графических интерфейсов, а также надежную поддержку баз данных SQL для подключения к базам данных и взаимодействия с ними.

2. Python Tkinter

Виджеты управления кнопками используются для отображения и разработки приложений, в то время как виджет canvas используется для рисования фигур, таких как линии, полигоны, прямоугольники и т. Д. В приложении. Кроме того, Tkinter-это встроенная библиотека для Python, поэтому вам не нужно устанавливать ее, как другие графические фреймворки. Ниже приведен пример кодирования с использованием Tkinter.

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

3. PySide 2

Третья библиотека графического интерфейса Python, о которой мы будем говорить, – это PySide2, или вы можете назвать ее QT для python. Qt для Python предлагает официальные привязки Python для Qt (PySide2), позволяющие использовать его API в приложениях Python, и инструмент генератора привязок (Shiboken2), который можно использовать для представления проектов C++ в Python.

Qt для Python доступен под лицензией LGPLv3/GPLv3 и коммерческой лицензией Qt.

Итак, теперь позвольте мне показать вам процесс установки, а также пример. Таким образом, для установки вы можете просто использовать:

Вот пример настройки графического фрейма с помощью PySide2.

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

4. Киви

Еще один графический фреймворк, о котором мы будем говорить, называется Kivy. Kivy-это библиотека Python с открытым исходным кодом для быстрой разработки приложений, использующих инновационные пользовательские интерфейсы, такие как мультитач-приложения.

Kivy работает на Linux, Windows, OS X, Android, iOS и Raspberry Pi. Вы можете запустить один и тот же код на всех поддерживаемых платформах. Он может изначально использовать большинство входов, протоколов и устройств, включая WM_Touch, WM_Penn, трекпад Mac OS X и Magic Mouse, Netdev, ядро Linux HID.

Kivy на 100% бесплатен в использовании по лицензии MIT.

Инструментарий профессионально разработан, поддерживается и используется. Вы можете использовать его в коммерческом продукте. Фреймворк стабилен и имеет хорошо документированный API, а также руководство по программированию, которое поможет вам начать работу.

Графический движок Kivy построен на OpenGL ES 2, используя современный и быстрый графический конвейер.

Инструментарий поставляется с более чем 20 виджетами, все они очень расширяемы. Многие части написаны на языке Си с использованием Cython и протестированы с помощью регрессионных тестов.

Приступая к установке Kivy, вам необходимо установить зависимость “glew”. Вы можете использовать команду pip, как показано ниже:

Введите эту команду и нажмите enter, она будет установлена. После этого вам нужно ввести эту команду для установки Kivy:

Поэтому после установки позвольте мне показать вам простой пример Kivy, чтобы показать, насколько это просто.

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

5. wxPython

Итак, последний графический фреймворк, о котором мы будем говорить, – это wxPython. wxPython-это кроссплатформенный графический инструментарий для языка программирования Python.

Это позволяет программистам на Python создавать программы с надежным, высокофункциональным графическим пользовательским интерфейсом, просто и легко. Он реализован в виде набора модулей расширения Python, которые обертывают компоненты графического интерфейса популярной кроссплатформенной библиотеки wxWidgets, написанной на C++.

Как и Python и wxWidgets, wxPython является открытым исходным кодом.

wxPython-это кроссплатформенный инструментарий. Это означает, что одна и та же программа будет работать на нескольких платформах без изменений. В настоящее время поддерживаются следующие платформы: Microsoft Windows, Mac OS X и macOS, а также Linux.

Теперь я покажу вам процесс установки и создам простой пример. Поэтому для установки просто введите следующую команду:

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

Вывод

Итак, теперь мы увидели 5 библиотек графического интерфейса Python, и, на мой взгляд, PySide2 и PyQt5 являются более мощными фреймворками графического интерфейса. Но они действительно поставляются с коммерческой лицензией, и это объясняет, почему они многофункциональны. Tkinter, Kivy и wxPython-это бесплатные библиотеки графического интерфейса для Python.

Какая ваша любимая библиотека графического интерфейса в Python?

Источник

13 проектов для Python-программистов уровня intermediate

Изучение основ Python — прекрасный опыт. Но эйфория от изучения языка постепенно заменяется желанием создать что-то своими руками. И это нормально, но нужны идеи.

Проблема здесь в том, что некоторые проекты либо слишком просты, либо слишком сложны для разработчика среднего уровня. Эта статья — помощь программисту уровня intermediate. Она предоставляет несколько идей проектов, которые могут стать интересным вызовом для вас. Материал адаптирован на русский язык совместно с Алексеем Некрасовым, лидером направления Python в МТС, программным директором направления Python в Skillbox.

Прочитав статью, вы сможете узнать:

Выбор платформы

Сперва необходимо определиться с выбором одной из трех основных платформ — веб, десктоп или командная строка. Хотя, конечно, никто не отрицает возможности работать сразу со всеми тремя.

На Хабре нет смысла объяснять, что такое веб-приложения. Понятно, что оно доступно всегда с любого устройства и состоит из двух основных компонентов — фронтенда и бэкенда. Поскольку в статье речь идет о разработке на Python, то основное внимание уделяется бэкенду. Но фронтенд тоже нужен, поэтому используем знания HTML, CSS и немного JavaScript. Для простого фронтенда этого вполне достаточно.

Еще один вариант — создание и фронтенд- и бэкенд-компонентов на Python с использованием библиотеки anvil. Что касается фреймворков для работы, то можно порекомендовать Django и Flask в качестве одних из самых популярных.

В рамках профессии “Python-разработчик” мы обучаем не только делать веб-приложения, разбираться во фреймворках и библиотеках, но и системному подходу в их создании.

Для создания десктопных приложений на Python существуют специальные библиотеки. Одна из них PySimpleGUI, она хорошо подходит для разработчика среднего уровня. PyQt5 имеет больше возможностей, но потребует и больше времени для изучения.

ПО, которое вы разработаете, будет работать на всех ОС, включая Windows, Linux или Mac. Главное — скомпилировать проект в исполняемый файл для требуемой ОС.

Такие приложения работают в консоли при помощи ввода специальных команд. Эти приложения не имеют GUI, но в большинстве случаев они не менее мощные, чем приложения с графическим интерфейсом. Если хотите улучшить внешний вид консольного приложения, вот пара библиотек: Colorama и Colored. Фреймворки Docopt, Argarse и Click значительно упрощают процесс создания приложений.

Идеи для веб-приложений

Контент нужен всем и всегда. Для того чтобы быть в курсе интересующей темы, нужно мониторить большое количество ресурсов. Один из лучших способов сделать это — создание агрегатора контента, который парсит разные сайты и собирает данные в одном месте.

Примеры хороших контент-агрегаторов:

Во-первых, нужно знать, с каких сайтов вы собираетесь парсить контент. Во-вторых, потребуются библиотеки, включая Requests для отправки HTTP-запросов, а также BeautifulSoup для парсинга и сбора нужной информации.

Неплохо бы еще реализовать агрегацию контента в качестве фонового процесса, с чем могут помочь такие библиотеки, как APScheduler.

После того как мы спарсили контент, его придется где-то хранить, соответственно, нужно использовать базу данных. Можно использовать PostgreSQL для хранения метаданных, Elasticsearch для быстрого полнотекстового поиска по контенту (если это текстовый контент).

А если хотите сделать приятное пользователям, то можно добавить подписку, — и в конце дня все подписчики получат нужную информацию по электронной почте. С этой задачей вам помогут python модули smtplib и email.

В некоторых случаях нужен поиск данных в текстовом документе. Если задача нестандартная, то обычный инструмент поиска не подходит. Поэтому можно создать инструмент, основанный на регулярных выражениях — это и будет Regex Query Tool.

Регулярные выражения дают возможность задавать более общие условия, включая поиск любых дат, записанных в определенном виде. Когда регулярное выражение сопоставляет шаблоны с текстом, оно подсвечивает совпавшие части, сообщая о них пользователю. Соответственно, приложение ищет заданные строки, что гораздо быстрее, чем в текстовых редакторах.

Примеры такого инструмента:

Нужно добиться от приложения получения положительного или отрицательного ответа в ходе поиска. Это может быть «строка найдена» и «строка не найдена», выделенная определенными цветами.

Писать алгоритм с нуля не нужно, для этого можно использовать re- — стандартную библиотеку Python, которая будет возвращать найденные строки или None, если ничего не найдено.

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

Собственно, здесь все понятно уже по названию проекта. Его предназначение — превращать длинные и неудобные ссылки в короткие и красивые, уменьшая количество символов в URL-адресе.

В поле ввода приложения пользователи будут вводить исходный адрес, получая новый. Для создания сокращенного адреса можно использовать стандартные python модули random и string.

Для того, чтобы ссылки не «умирали» с течением времени, их нужно хранить в базе данных. При поступлении запроса приложение будет проверять, существует ли URL-адрес и перенаправлять на оригинал. Если адреса нет, то будет показываться страница 404.

Чтобы сделать приятное пользователю, стоит использовать настройку генерации URL-адреса, чтобы получалось нечто вроде xyz.com/mysiteURL вместо xyz.com/piojwrURL. Также можно добавить счётчик переходов по ссылке и возможность установки времени жизни ссылки.

Каждый день мы получаем огромное количество информации. Чтобы не забыть необходимое, стоит использовать стикеры и заметки. Проект Post-It Note посвящен созданию небольших напоминалок, которые пользователь может открыть при помощи любого браузера.

Главная задача проекта — предоставление пользователю пространства для наклеивания заметки. У каждого пользователя они свои, поэтому нужны учетные записи. К чужим заметкам доступа быть не должно.

Благодаря Django можно использовать систему аутентификации, не создавая ее с нуля. Кроме того, можно добавить еще и классификацию заметок, что увеличит полезность приложения для пользователей.

Еще одна важная задача — хранение данных каждого пользователя, что не получится реализовать без базы данных. Если вы выберете MySQL, то потребуется модуль MySQLdb или psycopg2-модуль для базы данных PostgreSQL. Если вдруг понадобится иная база данных, можно воспользоваться другими модулями.

Сделать приятно пользователю можно при помощи функции добавления времени для уведомлений.

Задача проекта — помочь пользователю проверить свои знания. Ну а приложение, о котором говорится ниже, позволяет создавать тесты и викторины. В приложении есть администраторы, которые создают тесты, и пользователи, отвечающие на вопросы.

После того, как пользователь прошел тест, приложение показывает итоговую оценку и правильные ответы. Если есть желание, можно ввести систему учетных записей, что позволит хранить результаты разных пользователей.

А значит, нужна и база данных, в которой вся эта информация будет храниться.

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

Десктопные приложения

Наверное, многие читатели помнят Winamp. А теперь можно создать собственный плеер, который будет ничуть не хуже Winamp.

Вот еще парочка примеров:

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

В Python есть библиотеки, которые позволяют работать с мультимедийными файлами. Они также могут обрабатывать не только MP3, но и другие файлы. Эти библиотеки — pygame, pymedia и simpleaudio.

Для того, чтобы сделать приятно пользователю, стоит добавить плейлисты. Для хранения информации понадобится база данных. Модуль sqlite3 отлично подходит для базы данных SQLite. Ее основа — файлы, и в настройке она проще, чем многие другие SQL базы данных.

А еще можно добавить функцию повторения трека и возможность перемешивания треков в плейлистах.

Почему бы и не создать будильник? Свой, собственный, почти ламповый.

Вот примеры проектов:

Главная задача такого приложения — запустить определенный звуковой сигнал или проиграть трек в определенное время. Таким образом, основные компоненты приложения — информация о времени и звуковой сигнал воспроизведения. Приложение должно чекать установленное время и активировать сигнал, когда наступает срок. Для воспроизведения звука можно использовать библиотеку pygame.

У пользователей должна быть возможность редактировать, и удалять напоминания. А приложение должно отображать их все, как активные, так и нет. Для хранения информации потребуется база данных.

Чтобы сделать приятно пользователю, можно разрешить устанавливать повторяющиеся напоминания, например, время пробуждения для рабочих дней и для выходных. А еще можно добавить возможность откладывания сигнала.

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

Вот примеры файловых менеджеров:

Главная задача файлового менеджера — предоставить интерфейс для управления файлами. Он должен быть простым и удобным в использовании. Для этого можно воспользоваться PySimpleGUI. Кроме того, библиотеки sys, os и shutil будут весьма полезны для этого проекта. В них присутствуют функции для выполнения действий с файлами в фоновом режиме — то есть, когда пользователь занят другими делами. В приложении файлового менеджера можно установить отображение файлов в виде сетки или списка.

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

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

Для предоставления данных о расходах нужно провести определенный статистический анализ. У приложения, кроме чисто аналитических функций, должен быть хороший интерфейс. С этим поможет PySimpleGUI. Ну а библиотеки PyData, включая Pandas и Matplotlib, помогут с техническими аспектами. В первом случае помощь оказывается с анализом данных, во втором — с построением графиков.

Информацию пользователей можно хранить при помощи SQLite и Python-модуль Sqlite3.

Чтобы сделать приятное пользователю, желательно добавить функцию напоминания внесения расходов. В противном случае человек забывает об этом, а восстановить список трат по памяти — очень сложно.

Приложения для командной строки

Контактов у практически любого современного человека очень много. Для того, чтобы их не терять, помогает адресная книга. Обычно в ней хранится имя, адрес, номер телефона и адрес электронной почты. Можно также создать и софт, который люди будут использовать для хранения и поиска контактных данных. Он всегда будет доступен в командной строке.

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

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

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

Для хранения информации, как и в предыдущих случаях, подходит база данных SQLite.

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

Проверка доступности сайта

В некоторых случаях сайты, которые нам нужны или принадлежат, могут быть недоступны. Для проверки доступности существуют приложения, которые пингуют ресурсы и рапортуют о недоступности.

Для подключения к ресурсу нужно определить протокол — TCP или ICMP. Для проверки требуется модуль Socket. Благодаря фреймворку, будь то Docopt, Click или Argparse, можно добавлять команды, чтобы пользователь мог взаимодействовать с приложением. У него должна быть возможность запускать приложение, останавливать его и определять интервалы проверки.

Что использовать для хранения данных? Это мы уже знаем — SQLite.

Чтобы сделать приятно пользователю, можно добавить функцию уведомления, например, звуковой сигнал. Уведомление предупредит пользователя об изменении статуса сайта.

Bulk File Rename Tool

В некоторых случаях пользователю нужно дать имена всем файлам в каталоге в соответствии с определенным шаблоном. Например, имена File0001.jpg, File0002.jpg. Ладно, если файлов 3-4, тогда можно сделать все вручную. Но если их тысячи? Тогда приходит на помощь Bulk File Rename Tool.

У приложения должна быть возможность управления файлами, для чего понадобятся библиотеки os, sys и shutil. Пользователи смогут задавать шаблон, под который файлы можно будет переименовывать, с чем поможет модуль regex.

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

Для того, чтобы сделать приятно пользователю, стоит реализовать возможность переименования определенного количества файлов. Для этого понадобится сортировка файлов по алфавиту, времени создания файла или его размеру, в зависимости от требований пользователя.

Генератор дерева каталогов

Если каталогов много, иногда возникает необходимость установления связи между ними. С этой задачей справляется генератор древа.

Для этого приложения понадобится библиотека os, она сможет демонстрировать связь между отдельными каталогами. Для создания команд потребуются библиотеки Docopt или Argparse для создания команд. Ну а для придания приложению более удобного вида стоит применить Colored.

Для того, чтобы сделать приятное пользователю, стоит добавить генерацию изображений из древа. Для этого можно использовать библиотеку Pillow.

Источник

🐍 Соединяем Python и Electron/Node.js в приложении для десктопа

создание десктопных приложений на python. f9a404e02d9adebe6c701b0fa9d96fbb. создание десктопных приложений на python фото. создание десктопных приложений на python-f9a404e02d9adebe6c701b0fa9d96fbb. картинка создание десктопных приложений на python. картинка f9a404e02d9adebe6c701b0fa9d96fbb.

Перевод публикуется с сокращениями, автор оригинала Ahmed Bouchefra.

Что понадобится

Шаг 1. Настраиваем среду разработки

создание десктопных приложений на python. 364f49cafe46be1e6fa13c3e1c6959bd. создание десктопных приложений на python фото. создание десктопных приложений на python-364f49cafe46be1e6fa13c3e1c6959bd. картинка создание десктопных приложений на python. картинка 364f49cafe46be1e6fa13c3e1c6959bd.

В этом разделе мы настроим среду разработки для запуска примеров.

Установка Node.js и npm

Существуют различные способы для установки данных инструментов:

Самое простое – зайти на официальный сайт и загрузить установочный файл, а затем выполнить инструкции по установке Node.js и npm в вашей ОС.

Настройка Electron

Разработка на Electron – это, как ни странно, разработка на Node.js. Поскольку Node.js уже должен быть установлен в предыдущем пункте, переходите к настройке, иначе почитайте в официальном хелпе о начальной настройке для разных ОС.

Из директории проекта запустите команду:

Процесс установки содержит различные вариации – изучите их в специальном разделе.

Настройка виртуальной среды Python

Чтобы проверить, что в вашей системе установлен Python 3, откройте терминал и выполните следующую команду:

А теперь давайте создадим виртуальную среду.

Создание виртуальной среды

Далее необходимо активировать среду с помощью следующей команды:

В Windows виртуальную среду можно активировать с помощью сценария Scripts\activate.bat:

Все готово и можно устанавливать пакеты.

Шаг 2. Создаём Node.js-приложение

Начнём с создания папки для проекта и файла package.json внутри нее с помощью следующих команд:

Команда init сгенерирует файл package.json со следующим содержанием:

Вы можете вручную настроить значения в этом файле на свое усмотрение. Далее создайте внутри рабочей директории два файла: index.html и index.js :

Связываем Electron и Python

Каким-то образом нам понадобится связать между собой Electron и Python.

В компьютерных науках inter-process communication или interprocess communication (IPC) относится к механизмам, которые предоставляет ОС, чтобы позволить процессам управлять общими данными. Как правило, приложения могут использовать IPC, классифицированные как клиенты и серверы, где клиент запрашивает данные, а сервер отвечает на запросы.

IPC относится к набору механизмов, поддерживаемых ОС, которые позволяют различным локальным или удаленным процессам взаимодействовать друг с другом. Например, в нашем случае мы хотим разрешить связь между процессами Electron и Python.

Рассмотрим, как этого достичь.

Создание процесса Python с помощью child_process

Node.js предоставляет модуль child_process, позволяющий создавать дочерние процессы.

Давайте используем его, чтобы породить процесс Python и запустить простой скрипт calc.py. Мы будем использовать simplecalculator для выполнения простых вычислений в Python, поэтому, сначала запустим следующую команду для его установки:

Внутри папки проекта создайте папку py, а внутри создайте файл calc.py:

Откройте calc.py и добавьте следующий код, который выполняет вычисление и выводит результат в стандартный вывод:

Затем создайте renderer.js и добавьте туда следующий код для создания процесса Python и выполнения скрипта py/calc.py:

Затем откройте index.html и обновите его следующим образом:

Использование python-shell

Теперь посмотрим, как использовать python-shell.

Python-shell – это npm-пакет, обеспечивающий простой способ запуска скриптов Python из Node.js с межпроцессным взаимодействием и обработкой ошибок.

Вы можете также использовать python-shell для:

Перейдите в терминал и выполните следующую команду для установки python-shell:

Затем откройте renderer.js и перепишите функцию sendToPython() следующим образом:

Использование связи клиент-сервер

Теперь рассмотрим другой способ создания связи между Python и Electron с помощью сервера HTTP.

В терминале выполните следующую команду для установки Flask и Flask-Cors:

В папке py вашего проекта создайте файл server.py и добавьте следующий код для запуска сервера Flask, который выполняет вычисление и возвращает результат в виде HTTP-ответа:

Затем откройте файл renderer.js и добавьте следующий код для создания Python и запуска server.py:

Резюме

В этом руководстве мы представили Electron для Python-разработчиков, который может быть отличным и простым инструментом для создания GUI с помощью современных веб-технологий, основанных на HTML, CSS и JavaScript. На понятном примере с калькулятором были рассмотрены различные способы подключения Python и Electron: child_process, python-shell и сервер HTTP (Flask).

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *