No Image

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

СОДЕРЖАНИЕ
500 просмотров
10 марта 2020

Python имеет встроенный пакет GUI, который позволяет легко создавать такие формы:

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

Интересная часть этой статьи – сделать приложение автономным и отправить его кому-то, у кого не установлен python и не нужно работать с консолью. Это 3 маленьких шага, необходимых для написания кода:

  1. Сохраните код Python как *.pyw
  2. Установите «pip install pyinstaller»
  3. Создайте исполняемый файл с помощью «pyinstaller -w InputOutputConsole.pyw»

Когда вы выполните эти шаги, результат будет сохранен в той же папке:

В папке dist находится EXE-файл, который может запустить небольшое приложение. Код приложения здесь:

Это небольшой пример того как можно реализовать десктопное приложение с помощью Python

Сделать сборку под OSX можно при помощи утилиты dmgbuild

PyQt — набор «привязок» графического фреймворка Qt для языка программирования Python, выполненный в виде расширения Python. В нашей недавней статье мы рассмотрели создание простого приложения с использованием PyQt в связке с Qt Designer. Однако простым приложением функциональность PyQT не ограничивается. С его помощью можно создать приложения, начиная с привычного всем калькулятора и заканчивая веб-браузером. В этой статье мы рассмотрим 15 небольших десктопных приложений, написанных на Python с помощью PyQt. Приложения являются примерами использования разных частей фреймворка Qt, включая продвинутые виджеты, мультимедиа и другое. Исходники есть в этом репозитории на GitHub, так что спокойно скачивайте, изменяйте, экспериментируйте — в общем, делайте с ними всё, что душе угодно (в рамках лицензии MIT).

MooseAche

Пример веб-браузера, разработанного с помощью Python и Qt. Модуль QtWebEngineWidgets, представленный в Qt 5.6, даёт возможность просматривать веб-страницы в одном окне и использовать привычные элементы управления.

Mozzarella Ashbadger

Mozarella Ashbadger — революция среди браузеров! Возвращайтесь на вкладку назад и вперёд! Печатайте страницы! Сохраняйте файлы! Воспользуйтесь справкой! Любые совпадения с другими браузерами совершенно случайны.

Moonsweeper

Исследуйте таинственную поверхность луны Q’tee, но остерегайтесь пришельцев-аборигенов.

Moonsweeper — игра-головоломка, основанная на известном «Сапёре». Цель игры — исследовать поверхность вокруг зоны приземления вашего космического корабля, избегая встречи со смертоносными пришельцами расы B’ug. Детектор пришельцев подскажет, сколько ксеноморфов находится поблизости.

No2Pads

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

Calculon

Простой калькулятор, интерфейс разработан в Qt Designer, а операции реализованы с помощью стека.

Megasolid Idiom

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

NSAViewer

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

Failamp

Простое приложение для прослушивания аудио и просмотра видео-файлов с поддержкой плейлиста. Для работы с воспроизведением и плейлистом используются QtMultimedia и QtMultimediaWidgets.

Brown Note (QtDesigner)

Это приложение позволяет создавать временные записки на рабочем столе. Записки хранятся в базе данных SQLiteTake.

Piecasso (QtDesigner)

Проявите свою творческую натуру с PieCasso — единственным приложением для рисования со встроенными рисунками пирога.

Читайте также:  Pss storage bios что это

Piecasso — клон Paint из Windows 95 с несколькими новыми функциями и вырезанными старыми. В программе доступны стандартные инструменты вроде кисти, карандаша, заливки, распылителя и множество фигур.

7Pez (QtDesigner)

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

Translataarrr (QtDesigner)

Переводчик с любого языка, поддерживаемого Google Translate, на пиратский. В приложении используются API для funtranslations.com и неофициальная обёртка над Google Translate для перевода на английский с других языков.

Raindar (QtDesigner)

Приложение, показывающее прогноз погоды в выбранном городе. Данные для прогноза берутся через API для OpenWeatherMap.

Doughnut (PyQtGraph)

Это приложение с помощью API для Fixer позволяет отслеживать курсы валют. По умолчанию отображаются курсы за последние полгода.

Ronery (QGraphicsScene)

Клон игры «Солитёр» с Ким Чен Ыном на рубашке карт. На внешнем виде различия между играми заканчиваются. В Ronery для работы с игровым полем используется QGraphicsScene.

Прежде чем начать изучать тот или иной язык программирования, люди обычно задумываются, как потом смогут применить свои знания и навыки на практике. Что касается Python, этот язык общего назначения пригодится во множестве различных сфер. DEV.BY опубликовал перевод статьи, в которой разработчик и основатель стартапа CS Dojo Ек Суги рассказал о трёх самых частых способах использования Python.

1. Веб-разработка

Фреймворки, основанные на Python, такие как Django и Flask, в последнее время приобрели широкую популярность среди веб-разработчиков. Эти фреймворки позволяют создавать серверный код (backend-код) на Python, который выполняется на сервере, в отличие от frontend-кода, исполняемого на пользовательских устройствах и в браузерах.

Для чего нужны веб-фреймворки

Веб-фреймворки упрощают разработку серверной логики: обработку URL, обращение к базам данных, создание HTML-файлов, которые видят в браузерах пользователи.

Какие фреймворки для веб-разработки лучше использовать

Два наиболее популярных веб-фреймворка для Python — Django и Flask. Их рекомендуется использовать начинающим разработчикам.

В чём разница между Django и Flask

Отличную статью в ответ на этот вопрос подготовил Гарет Дуайер.

  • Flask — простой и гибкий фреймворк с очень подробными настройками. Пользователь может сам решать, как реализовывать те или иные вещи.
  • Django предоставляет полный функционал для разработки приложений прямо «из коробки»: встроенный интерфейс администратора, API доступа к базам данных, ORM, и структуру каталогов для приложений и проектов.
  • Flask, если цель разработчика — опыт и возможности обучения, или же если ему нужно самостоятельно выбирать, какие компоненты использовать (например, какие применять базы данных или как взаимодействовать с ними).
  • Django, если главное — конечный продукт. Особенно, если нужно построить интуитивное приложение, например, новостной сайт, онлайн-магазин, блог, в котором пользователь сможет легко ориентироваться.

Таким образом, Flask предпочтительнее использовать новичкам, потому что этот фреймворк имеет не настолько богатый функционал, а также тем, кому важна возможность настроить его по своему усмотрению. Кроме того, благодаря своей гибкости Flask больше, чем Django, подойдёт для разработки REST API. С другой стороны, если требуется создать простой продукт, быстрее это получится сделать на Django.

Читайте также:  Поменять стекло на смартфоне самсунг

2. Обработка данных (включая машинное обучение, анализ и визуализацию данных)

Что такое машинное обучение

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

На второй она должна распознать стол.

Первый путь — написать для этого специальный код. Например, если на картинке много светло-коричневых пикселей, значит, на ней нарисована собака. Или можно найти способ распознавать границы предметов: если на рисунке много прямых линий, то это — стол.

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

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

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

  • системы распознавания лиц,
  • системы распознавания голоса,
  • рекомендательные системы сайтов вроде YouTube, Amazon или Netflix.

Самые широко известные алгоритмы машинного обучения:

  • нейронные сети,
  • глубокое обучение,
  • метод опорных векторов,
  • «случайный лес».

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

Python для машинного обучения

Для Python есть популярные библиотеки и фреймворки машинного обучения. Две самые крупные из них — scikit-learn и TensorFlow. В scikit-learn встроены некоторые общеизвестные алгоритмы машинного обучения, о которых шла речь выше. TensorFlow — более низкоуровневая библиотека, которая позволяет строить пользовательские алгоритмы.

Как изучать машинное обучение

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

Далее полученную информацию нужно закрепить на сайте Kaggle. Здесь можно соревноваться с другими разработчиками в создании лучшего алгоритма машинного обучения для различных задач. Сайт также предлагает полезные самоучители для начинающих.

Анализ данных и визуализация данных

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

Столбчатая диаграмма 1, построенная на Python. Ек Суги

На диаграмме видно, что в заданное воскресенье покупатели мужского пола приобрели более 400 единиц товара, а женского — около 350. У специалиста может быть несколько предположений, почему возник этот разрыв.

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

Линейная диаграмма 1, построенная на Python. Ек Суги

Читайте также:  Comstars kt 400ex 12a1 схема

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

Но если бы диаграмма выглядела так,

Линейная диаграмма 2, также построенная на Python Ек Суги

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

Это очень простой пример анализа данных. И для этого компании используют в том числе Python, а для визуализации данных — библиотеку Matplotlib.

Анализ и визуализация данных на Python

Matplotlib — одна из наиболее распространённых библиотек для визуализации данных. Начинать лучше с неё потому, что она проста, а также потому, что на ней основаны некоторые другие библиотеки, например, seaborn. Поэтому знание Matplotlib поможет в будущем освоить и их.

Как изучать анализ и визуализацию данных на Python

В первую очередь нужно выучить основы. Ек Суги предлагает собственное вводное видео в анализ и визуализацию данных на Python и Matplotlib на YouTube, а также полный практический курс на образовательной платформе Pluralsight, который можно получить бесплатно после подписки на 10-дневный пробный период на сайте. После этого полезно изучить основы статистики, например, на Coursera и Khan Academy.

3. Написание скриптов

Что такое написание скриптов

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

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

Python и встраиваемые приложения

На этом языке ведут программирование многие разработчики для Raspberry Pi и других аппаратных основ.

Python и компьютерные игры

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

Например, можно начинать с Unity на C# — это одна из самых общеизвестных сред разработки компьютерных игр. Она позволяет создавать межплатформенные игры для Windows, Mac, iOS и Android.

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

Десктопные приложения можно разрабатывать на Python с помощью Tkinter, но это также не самый частый выбор: разработчики приложений для ПК предпочитают языки Java, C#, и C++. В последнее время некоторые компании для этого начали применять и JavaScript. Например, десктопное приложение Slack построено во фреймворке Electron, использующем JavaScript. Этот язык даёт возможность повторно использовать код из веб-версии приложения, если такая имеется.

Python 3 или Python 2

Лучше выбрать Python 3, потому что на сегодняшний день это более современная и более востребованная версия языка.

Комментировать
500 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
Adblock
detector