создание приложений в pythonista

Kivy — Создание мобильных приложений на Python

создание приложений в pythonista. DevOps Worm 2021. создание приложений в pythonista фото. создание приложений в pythonista-DevOps Worm 2021. картинка создание приложений в pythonista. картинка DevOps Worm 2021.

создание приложений в pythonista. kivy python android ios. создание приложений в pythonista фото. создание приложений в pythonista-kivy python android ios. картинка создание приложений в pythonista. картинка kivy python android ios.

В наши дни каждый разработчик может столкнуться с необходимостью работы над мобильным или веб-приложением на Python. В Python нет встроенных инструментов для мобильных устройств, тем не менее существуют пакеты, которые можно использовать для создания мобильных приложений. Это Kivy, PyQt и даже библиотека Toga от Beeware.

Содержание

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

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

Разбор данного руководства предполагает, что читатель знаком с объектно-ориентированным программированием. Для введения в курс дела можете просмотреть статью об Объектно-ориентированном программировании (ООП) в Python 3.

Принципы работы фреймворка Kivy Python

Kivy был создан в 2011 году. Данный кросс-платформенный фреймворк Python работает на Windows, Mac, Linux и Raspberry Pi. В дополнение к стандартному вводу через клавиатуру и мышь он поддерживает мультитач. Kivy даже поддерживает ускорение GPU своей графики, что во многом является следствием использования OpenGL ES2. У проекта есть лицензия MIT, поэтому библиотеку можно использовать бесплатно и вкупе с коммерческим программным обеспечением.

Во время разработки приложения через Kivy создается интуитивно понятный интерфейс (Natural user Interface), или NUI. Его главная идея в том, чтобы пользователь мог легко и быстро приспособиться к программному обеспечению без чтения инструкций.

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

Установка Kivy

У Kivy есть множество зависимостей, поэтому лучше устанавливать его в виртуальную среду Python. Можно использовать встроенную библиотеку Python venv или же пакет virtualenv.

Виртуальная среда Python создается следующим образом:

Источник

Легенда об искушении: как использовать Python для автоматизации iOS

создание приложений в pythonista. 7988aac0cdc647c0847be792a7845feb. создание приложений в pythonista фото. создание приложений в pythonista-7988aac0cdc647c0847be792a7845feb. картинка создание приложений в pythonista. картинка 7988aac0cdc647c0847be792a7845feb.

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

В этой статье я хочу рассказать о Pythonista — среде разработки на языке Python (версии 2.7.5) для iOS, которая позволяет в том числе писать полноценные приложения с графическим интерфейсом. Однако мы будем использовать ее для несколько иных целей — для создания простых подсобных скриптов, которые будут автоматизировать рутинные операции.

создание приложений в pythonista. image loader. создание приложений в pythonista фото. создание приложений в pythonista-image loader. картинка создание приложений в pythonista. картинка image loader.

Pythonista включает в себя множество предустановленных библиотек, в том числе те, что помогут нам получить доступ к функциональности iOS. Как пример можно привести clipboard, позволяющий читать и писать в буфер обмена, contacts для работы с адресной книгой, keychain, location и другие.

Кроме встроенных, нам также понадобятся сторонние Python-модули. Для Pythonista существует два аналога всем известного pip. Это pipista 2.0 и Pypi. Чтобы установить пакет с помощью первого, необходимо сохранить скрипт в корневой каталог и выполнить такую команду:

У этой библиотечки есть также функции pypi_download(), pypi_search() и pypi_versions(), что позволяет считать ее полноценной заменой pip. Второй установщик требует более четких запросов. Например, необходимо указать версию пакета — это удобно, если по какой-то причине не хочешь использовать последнюю версию.

У этого установщика также есть дополнительные функции.

создание приложений в pythonista. image loader. создание приложений в pythonista фото. создание приложений в pythonista-image loader. картинка создание приложений в pythonista. картинка image loader.

Как запустить скрипт с главного экрана

Для этого есть две возможности: *Pythonista Shortcut* и *Launch Center Pro*. В первом случае все просто: достаточно зайти с девайса на сайт, ввести имя скрипта и аргументы, нажать на кнопку Create Shortcut, затем сохранить эту страницу на рабочий стол, используя стандартные функции Safari.

Вторая программа куда интересней. Чтобы запустить скрипт из нее, необходимо создать событие и в поле *URL* прописать вот такую строчку: «pythonista://script_name?action=run&args=», где script_name — имя скрипта с учетом иерархии каталогов, а после args= необходимо перечислить аргументы (если они есть). Также присутствует возможность запуска по времени или с определенной регулярностью.

Есть и возможность упаковать скрипт в полноценное iOS-приложение. Для этого достаточно скачать [архив](goo.gl/jsQK0b) с проектом XCode с официального сайта и заменить стандартный скрипт с Hello, world на свой. После этого можно собрать этот проект в XCode и запустить на симуляторе, а если есть аккаунт разработчика Apple, то и на гаджете.

создание приложений в pythonista. image loader. создание приложений в pythonista фото. создание приложений в pythonista-image loader. картинка создание приложений в pythonista. картинка image loader.

Pythonista включает в себя всю необходимую документацию, так что для ее изучения не потребуется подключаться к интернету.

Встроенный редактор Pythonista достаточно развит, имеет подсветку синтаксиса, автодополнение и дополнительные клавиши на клавиатуре. Более того, его тоже можно заскриптовать.

Скрипты

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

создание приложений в pythonista. image loader. создание приложений в pythonista фото. создание приложений в pythonista-image loader. картинка создание приложений в pythonista. картинка image loader.

Быстрая отправка твита

Начнем с вездесущего Twitter. Не очень удобно открывать приложение или переходить на сайт для того, чтобы просто отправить твит. Поэтому мы напишем скрипт, который будет твитить то, что находится в буфере обмена (не забудь установить библиотеку tweepy).

Скрипт подключается к аккаунту, используя имеющиеся ключи. Их можно получить на официальном сайте Twitter. Чтобы получить все ключи, нужно создать приложение, затем перейти на вкладку Keys and Access Tokens и нажать на кнопку Create my access token. Таким образом мы получим четыре необходимых нам ключа. Чтобы скрипт смог постить сообщения, необходимо дать приложению такие права на вкладке Permissions.

Во всем остальном функциональность крайне проста. Скрипт берет строку из буфера обмена, проверяет, соответствует ли строка формату твита (не более 140 символов), и постит ее.

Быстрое сохранение в Instapaper

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

Cкрипт использует так называемые x-callback-url — мини-API приложений, которые можно вызывать через встроенный браузер. На официальном сайте этой фичи есть список приложений, поддерживающих эту возможность. Структура x-callback-url-запросов такая:

Генератор паролей

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

Данный скрипт поможет создать пароль с высокой устойчивостью к подбору (с включением чисел и букв). Идея алгоритма крайне проста: в пустую строчку добавляется случайное (от 8 до 11) число символов из вышеупомянутого набора. Далее пароль помещается в буфер обмена.

Отправка текущего местоположения на email

Иногда проще нажать на кнопку и отправить собеседнику свой адрес, чем объяснить, где ты.

Скрипт состоит из двух частей: первая — это работа с почтовым сервером, вторая — получение текущего адреса и отправка письма. Остановимся на второй поподробнее. Дело в том, что функции «получить текущее местоположение» в библиотеке location нет, но есть две функции, позволяющие получить список часто посещаемых мест. Так как создание списка длится всего десять секунд (time.sleep(10)), то в нем будет всего один объект с текущим адресом. Этот объект — словарь. Получим необходимые значения по ключам и занесем красивую фразу в строку Text, которую мы потом и отправим.

создание приложений в pythonista. image loader. создание приложений в pythonista фото. создание приложений в pythonista-image loader. картинка создание приложений в pythonista. картинка image loader.

Отправка фотографии на сервер по FTP

Уже известная нам библиотека clipboard позволяет работать не только с текстом, но и с изображениями. Это открывает нам новые возможности. Как насчет скрипта, который позволяет сохранить фотографию из буфера обмена на FTP-сервер?

Скрипт можно немного изменить, написав в первых двух строчках

Тогда на сервер отправится не скопированная, а последняя отснятая фотография. А если заменить первые две строчки на эти:

то iOS предложит сделать фотографию.

Работа с удаленным сервером по SSH

У многих из нас есть удаленные серверы. У кого-то это домашний медиапроигрыватель или файлопомойка, другие рулят серверами на Amazon. Как управлять ими с iPhone или iPad? Можно скачать какой-нибудь FTP-клиент, но это не вариант, если необходимо регулярно выполнять одинаковые задачи, например делать бэкап. Стивен Миллард (Stephen Millard) написал [скрипт](goo.gl/Tt14cC), позволяющий выполнять удаленные команды через SSH. В упрощенном виде (без проверки на правильность введенных данных и вывод логов) он выглядит так:

Для выполнения набора команд достаточно скопировать строчку «stdin, stdout, stderr = client.exec_command(strCommand)» несколько раз с различными командами (либо перечислить все команды через точку с запятой. — Прим. ред.).

создание приложений в pythonista. image loader. создание приложений в pythonista фото. создание приложений в pythonista-image loader. картинка создание приложений в pythonista. картинка image loader.

Сокращаем ссылки при помощи goo.gl

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

Cкрипт получает URL из буфера обмена, конвертирует его и помещает обратно в буфер. Перед запуском скрипта необходимо получить API Access Key. Для этого заходим на страницу API, нажимаем Add project и в списке доступных сервисов включаем URL Shortener API. Далее в левом меню выбираем вкладку APIs & auth, подменю Credentials и жмем кнопку Create new Key, далее Browser Key. После получения ключа вставляем его в скрипт.

Обрати внимание, что в ходе исполнения скрипта переменной result присваивается словарь вида <'kind': 'urlshortener#url', 'id': ShortLink', u'longUrl': 'LongLink'>. Так как нам необходима только короткая ссылка, в буфер обмена заносится значение по ключу ‘id’.

Очистка записной книжки

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

Просто пробегаемся по списку контактов. Главное — не забыть сохранить сделанные изменения (последняя строка).

Импорт друзей из ВК в записную книжку

Наконец, самый сложный и длинный скрипт — импорт номеров телефонов из «ВКонтакте» в записную книжку. Как и у всех остальных, у «ВКонтакте» есть API. Для питона существует несколько библиотек для работы с ним. Самая известная и самая простая в использовании — библиотека со скромным именем vk.

Как и в случае с твиттером, для скрипта необходимо создать «приложение» внутри «ВКонтакте». Чтобы сделать это, перейди на вкладку «Приложения» на сайте VK, потом на вкладку «Управление» и нажми кнопку «Создать приложение». На странице приложения перейди на вкладку «Настройки» и скопируй «ID Приложения». Вставь «ID Приложения», «Логин» и «Пароль» в скрипт.

Разберемся, как работает этот скрипт. Сначала мы получаем список друзей. По умолчанию функция friends.get() возвращает словарь, состоящий из двух полей: count и items. Нас, несомненно, интересует второе, но так как мы хотим получить не только имена и фамилии, то передадим функции параметр fields, указывающий на то, что мы хотим узнать. Далее мы идем по списку словарей, где каждый словарь — это пользователь. При каждой итерации мы создаем переменную Temp типа Person и по очереди добавляем в нее поля.

В процессе прохода по контактам скрипт решает несколько проблем. Первая проблема возникает при экспорте телефонных номеров, ведь очень часто мы встречаем в ВК номера типа «кому надо — знают», «секрет» и подобные. Чтобы скрипт смог обработать подобные записи, не падая, используется оператор try. Вторая проблема возникла с несовпадением формата даты рождения. В полученном из ВК словаре она записана в виде строки формата DD.MM.YYYY, а в поле birthday необходимо заносить данные в формате datetime.datetime. Для этого и нужна функция convertdate в начале скрипта. Кроме того, дата рождения может быть не указана вовсе.

Встроенные библиотеки Pythonista

Заключение

Несмотря на большое число примеров, мы рассмотрели далеко не все возможности Pythonista. А ведь ее функционала хватает на очень многое. Например, в App Store уже выложено несколько приложений, созданных в этой программе. К тому же в скором времени создатель Pythonista обещает выпустить обновление с поддержкой iPhone 6 и 6+ и двумя новыми модулями для работы с напоминаниями и периферийными Bluetooth-устройствами.

создание приложений в pythonista. 7a81467e0c7a59782054603aeec3c678. создание приложений в pythonista фото. создание приложений в pythonista-7a81467e0c7a59782054603aeec3c678. картинка создание приложений в pythonista. картинка 7a81467e0c7a59782054603aeec3c678.

Впервые опубликовано в журнале «Хакер» от 02/2015.
Автор: Виктор Паперно (@Snusmumrick97)

Источник

Pythonista. Пишем на Python для iOS

Планшет iPad от компании Apple — всем известное и не нуждающееся в рекламе устройство. Но очень часто хочется использовать всю мощь этого устройства не только для игр и развлечения, а для серьёзной работы. Например для написания программ. Несмотря на 4-x летнею историю развития этого гаджета и наличие разных моделей удобных сред для программирования под iOS существует крайне мало. (Оговорюсь сразу, во избежании дальнейшей путаницы: программирование на iOS — значит написание кода и запуск программы на iPad или iPhone, а программирование для iOS — написание приложения, которое может быть выложено в App Store.)

создание приложений в pythonista. aceb4a81186547acb6185855f9726cc2. создание приложений в pythonista фото. создание приложений в pythonista-aceb4a81186547acb6185855f9726cc2. картинка создание приложений в pythonista. картинка aceb4a81186547acb6185855f9726cc2.

Недавно я наткнулся на великолепную программку Pythonista, которая позволяет писать на iOS для iOS.

Краткое описание

Pythonista brings the Zen of Python to your iPad or iPhone.

И это действительно так. Программа является лучшим компилятором для Python.

На мой взгляд, лучшим это приложение делают 3 вещи:

Обзор

Среда ориентирована на Python 2.7. Но есть и некоторые фишки из 3-й ветки. Например, сработает и такой код:

Кроме стандартных библиотек, есть несколько библиотек для непосредственной разработки для iOS. Остановлюсь на одной. Она называется ui и отвечает за GUI.

Рассмотрим несколько примеров работы с этой библиотекой. Очень интересно, что в Pythonista графический интерфейс можно задавать программно, а можно нативно:

Это первый пример по работе с библиотекой ui. Разберём программу построчно:

1) Сначала создаём объект View;
2) Потом задаём имя этого объекта, оно будет отображаться в его заголовке;
3) Устанавливаем цвет фона объекта — белый, можно задавать словом, а можно при помощи RGB;
4) Создаём кнопку с надписью «Tap me!»;
5) Размещаем кнопку на объекте;
6) Задаём функцию, которая будет выполняться при нажатии на кнопку. (В данном случае изменится надпись на кнопке);
7) Уточняем, что «button» является наследником «view»;
8) Наконец, вызываем метод view.present() для отображения объекта на экране iOS устройства.

Вот что будет происходить на айпаде:

создание приложений в pythonista. image loader. создание приложений в pythonista фото. создание приложений в pythonista-image loader. картинка создание приложений в pythonista. картинка image loader.создание приложений в pythonista. image loader. создание приложений в pythonista фото. создание приложений в pythonista-image loader. картинка создание приложений в pythonista. картинка image loader.

Но тоже самое можно сделать и нативно:

1) Создадим скрипт с UI:

создание приложений в pythonista. 7ca1211481a042819570f908b53768ce. создание приложений в pythonista фото. создание приложений в pythonista-7ca1211481a042819570f908b53768ce. картинка создание приложений в pythonista. картинка 7ca1211481a042819570f908b53768ce.

2) Открыв UI, нажмем на кнопку «+» и выберем button:

создание приложений в pythonista. 8fa1b9a711ac401995827513e63692fe. создание приложений в pythonista фото. создание приложений в pythonista-8fa1b9a711ac401995827513e63692fe. картинка создание приложений в pythonista. картинка 8fa1b9a711ac401995827513e63692fe.

3) Растянем кнопку и разместим её по центру экрана:

создание приложений в pythonista. a33431eaa4004ab1a0b206b20fbaf846. создание приложений в pythonista фото. создание приложений в pythonista-a33431eaa4004ab1a0b206b20fbaf846. картинка создание приложений в pythonista. картинка a33431eaa4004ab1a0b206b20fbaf846.

4) Откроем атрибуты кнопки и зададим функцию, срабатывающую при её нажатии:

создание приложений в pythonista. 359277926bb94e829a5d9e7a69ce9e7d. создание приложений в pythonista фото. создание приложений в pythonista-359277926bb94e829a5d9e7a69ce9e7d. картинка создание приложений в pythonista. картинка 359277926bb94e829a5d9e7a69ce9e7d.создание приложений в pythonista. 9da45525ba3947a199f4f38563fcfd0b. создание приложений в pythonista фото. создание приложений в pythonista-9da45525ba3947a199f4f38563fcfd0b. картинка создание приложений в pythonista. картинка 9da45525ba3947a199f4f38563fcfd0b.

4) Перейдём в редактор скрипта и напишем функцию:

Скажем, к какому UI привязать данный скрипт:

создание приложений в pythonista. 2a50147f1974481397117b51520c1bde. создание приложений в pythonista фото. создание приложений в pythonista-2a50147f1974481397117b51520c1bde. картинка создание приложений в pythonista. картинка 2a50147f1974481397117b51520c1bde.
5) Запустим программу:

создание приложений в pythonista. 1f4795c9e4fd44a1af3fa7174f432ddb. создание приложений в pythonista фото. создание приложений в pythonista-1f4795c9e4fd44a1af3fa7174f432ddb. картинка создание приложений в pythonista. картинка 1f4795c9e4fd44a1af3fa7174f432ddb.создание приложений в pythonista. abd47c025e6b415db261707b53f811af. создание приложений в pythonista фото. создание приложений в pythonista-abd47c025e6b415db261707b53f811af. картинка создание приложений в pythonista. картинка abd47c025e6b415db261707b53f811af.

В завершение

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

UPD: Читайте мою статью посвящённую этой программе и автоматизации iOS в февральском номере журнала ][акер

Источник

Pythonista — программа для написания iOS-приложений на Python

создание приложений в pythonista. 1402921472 2014 06 16 at 14 23 21. создание приложений в pythonista фото. создание приложений в pythonista-1402921472 2014 06 16 at 14 23 21. картинка создание приложений в pythonista. картинка 1402921472 2014 06 16 at 14 23 21.

Традиционный путь создания приложения дл iOS — это трудоемкий квест. И для его прохождения надо либо обзавестись маком, либо установить хакинтош. А когда приложение готово, придется заплатить взнос за регистрацию в App Store и понравиться модераторам этого магазина. Если вам нужно написать небольшую программу для личных нужд, то игра не стоит свеч. Но можно пойти альтернативным путем, воспользовавшись средой разработки Pythonista. С ее помощью можно написать код приложения непосредственно на iPhone/iPad и тут же его запустить.

Pythonista

Эта среда разработки существует с 2012 года, но лишь в конце 2014 о ней стали появляться публикации на русском языке. Принцип ее работы прост – пишем код, при необходимости используя всплывающие подсказки и встроенную документацию, рисуем интерфейс и тут же запускаем приложение.

создание приложений в pythonista. Snimok yekrana 2015 08 07 v 15.54.00. создание приложений в pythonista фото. создание приложений в pythonista-Snimok yekrana 2015 08 07 v 15.54.00. картинка создание приложений в pythonista. картинка Snimok yekrana 2015 08 07 v 15.54.00.

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

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

Давным-давно, легендарный Эрик Реймонд в своем эссе “Как стать хакером” писал, что Python отлично подходит на роль первого языка программирования. Pythonista пригодиться людям, которые недавно прошли начальный учебный курс по Python/прочитали книги и теперь горят желанием применить свои знания на практике. Пробуждение любви к программированию после использования этой среды разработки гарантировано!

Достоинства:

Недостатки: проблемы с русской кодировкой.
Цена: 429 рублей

Источник

Python GUI: создаём простое приложение с PyQt и Qt Designer

Авторизуйтесь

Python GUI: создаём простое приложение с PyQt и Qt Designer

создание приложений в pythonista. py qt designer 1. создание приложений в pythonista фото. создание приложений в pythonista-py qt designer 1. картинка создание приложений в pythonista. картинка py qt designer 1.

Эта статья предназначена для тех, кто только начинает своё знакомство с созданием приложений с графическим интерфейсом (GUI) на Python. В ней мы рассмотрим основы использования PyQt в связке с Qt Designer. Шаг за шагом мы создадим простое Python GUI приложение, которое будет отображать содержимое выбранной директории.

Что нам потребуется

Нам понадобятся PyQt и Qt Designer, ну и Python, само собой.

В этой статье используется PyQt5 с Python 3, но особых различий между PyQt и PySide или их версиями для Python 2 нет.

Windows: PyQt можно скачать здесь. В комплекте с ним идёт Qt Designer.

macOS: Вы можете установить PyQt с помощью Homebrew:

$ brew install pyqt5

Скачать пакет с большинством компонентов и инструментов Qt, который содержит Qt Designer, можно по этой ссылке.

Linux: Всё нужное, вероятно, есть в репозиториях вашего дистрибутива. Qt Designer можно установить из Центра Приложений, но PyQt придётся устанавливать через терминал. Установить всё, что нам понадобится, одной командой можно, например, так:

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

Дизайн

Основы

Теперь, когда у нас всё готово к работе, давайте начнём с простого дизайна.

Откройте Qt Designer, где вы увидите диалог новой формы, выберите Main Window и нажмите Create.

создание приложений в pythonista. Screenshot 20180324 224050. создание приложений в pythonista фото. создание приложений в pythonista-Screenshot 20180324 224050. картинка создание приложений в pythonista. картинка Screenshot 20180324 224050.

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

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

Все элементы формы и их иерархия по умолчанию отображаются в правой части окна Qt Designer под названием Object Inspector. Вы с лёгкостью можете удалять объекты, кликая по ним правой кнопкой мыши в этом окне. Или же вы можете выбрать их в основной форме и нажать клавишу DEL на клавиатуре.

создание приложений в pythonista. Screenshot 20180324 225724. создание приложений в pythonista фото. создание приложений в pythonista-Screenshot 20180324 225724. картинка создание приложений в pythonista. картинка Screenshot 20180324 225724.

Теперь перетащите куда-нибудь в основную форму List Widget (не List View) и Push Button из Widget Box.

Макеты

Вместо использования фиксированных позиций и размеров элементов в приложении лучше использовать макеты. Фиксированные позиции и размеры у вас будут выглядеть хорошо (пока вы не измените размер окна), но вы никогда не можете быть уверены, что всё будет точно так же на других машинах и/или операционных системах.

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

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

создание приложений в pythonista. Screenshot 20180324 224534. создание приложений в pythonista фото. создание приложений в pythonista-Screenshot 20180324 224534. картинка создание приложений в pythonista. картинка Screenshot 20180324 224534.

Теперь в меню Qt Designer нажмите Form, затем выберите Preview и увидите что-то похожее на скриншот выше. Выглядит хорошо, не так ли? Но вот что случится, когда мы изменим размер окна:

создание приложений в pythonista. Screenshot 20180324 224555. создание приложений в pythonista фото. создание приложений в pythonista-Screenshot 20180324 224555. картинка создание приложений в pythonista. картинка Screenshot 20180324 224555.

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

Основное окно уже поддерживает макеты, поэтому нам ничего не нужно добавлять в нашу форму. Просто кликните правой кнопкой мыши по Main Window в Object Inspector и выберите Lay outLay out vertically. Также вы можете кликнуть правой кнопкой по пустой области в форме и выбрать те же опции:

создание приложений в pythonista. Screenshot 20180324 224725. создание приложений в pythonista фото. создание приложений в pythonista-Screenshot 20180324 224725. картинка создание приложений в pythonista. картинка Screenshot 20180324 224725.

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

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

создание приложений в pythonista. Screenshot 20180324 225015. создание приложений в pythonista фото. создание приложений в pythonista-Screenshot 20180324 225015. картинка создание приложений в pythonista. картинка Screenshot 20180324 225015.

Если у вас не получается переместить элемент в главном окне, вы можете сделать это в окне Object Inspector.

Последние штрихи

Теперь, благодаря вертикальному размещению, наши элементы выровнены правильно. Единственное, что осталось сделать (но не обязательно), — изменить имя элементов и их текст.

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

Свойства элементов можно изменить в разделе Property Editor.

Подсказка: вы можете менять размер, передвигать или добавлять часто используемые элементы в интерфейс Qt Designer для ускорения рабочего процесса. Вы можете добавлять скрытые/закрытые части интерфейса через пункт меню View.

Измените значение objectName на btnBrowse и text на Выберите папку.

Должно получиться так:

создание приложений в pythonista. Screenshot 20180324 225310. создание приложений в pythonista фото. создание приложений в pythonista-Screenshot 20180324 225310. картинка создание приложений в pythonista. картинка Screenshot 20180324 225310.

Сохраните дизайн как design.ui в папке проекта.

Превращаем дизайн в код

Пишем код

Теперь у нас есть файл design.py с нужной частью дизайна нашего приложения и мы начинать работу над созданием его логики.

Используем дизайн

Для Python GUI приложения понадобятся следующие модули:

Также нам нужен код дизайна, который мы создали ранее, поэтому его мы тоже импортируем:

В этом классе мы будем взаимодействовать с элементами интерфейса, добавлять соединения и всё остальное, что нам потребуется. Но для начала нам нужно инициализировать класс при запуске кода. С этим мы разберёмся в функции main() :

И чтобы выполнить эту функцию, мы воспользуемся привычной конструкцией:

В итоге main.py выглядит таким образом:

создание приложений в pythonista. Screenshot 20180324 225529. создание приложений в pythonista фото. создание приложений в pythonista-Screenshot 20180324 225529. картинка создание приложений в pythonista. картинка Screenshot 20180324 225529.

Но нажатие на кнопку ничего не даёт, поэтому нам придётся с этим разобраться.

Добавляем функциональность в наше Python GUI приложение

Начнём с кнопки Выберите папку. Привязать к функции событие вроде нажатия на кнопку можно следующим образом:

Для открытия диалога выбора папки мы можем использовать встроенный метод QtWidgets.QFileDialog.getExistingDirectory :

Для отображения содержимого директории нам нужно импортировать os :

И получить список содержимого следующим образом:

В итоге функция browse_folder должна выглядеть так:

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

создание приложений в pythonista. Screenshot 20180324 225614. создание приложений в pythonista фото. создание приложений в pythonista-Screenshot 20180324 225614. картинка создание приложений в pythonista. картинка Screenshot 20180324 225614.

Так выглядит весь код нашего Python GUI приложения:

Это были основы использования Qt Designer и PyQt для разработки Python GUI приложения. Теперь вы можете спокойно изменять дизайн приложения и использовать команду pyuic5 без страха потерять написанный код.

Источник

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

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