Добавление графического интерфейса пользователя (GUI) к вашему проекту Raspberry Pi - отличный способ включить экран ввода данных, экранные кнопки для управления или даже более разумный способ показать показания с таких компонентов, как датчики.
01 из 10Создайте интерфейс для своего проекта
Существует несколько различных GUI-методов для малины Pi, однако большинство из них имеют крутую кривую обучения.
Интерфейс Tkinter Python может использоваться по умолчанию для всех, но новички могут бороться со своей сложностью. Аналогично, библиотека PyGame предлагает варианты для создания впечатляющих интерфейсов, но может быть излишней к требованиям.
Если вы ищете простой и быстрый интерфейс для своего проекта, EasyGUI может быть ответом. То, что ему не хватает в графической красоте, это более чем компенсирует его простота и простота использования.
В этой статье вы познакомитесь с библиотекой, включая некоторые из наиболее полезных вариантов, которые мы нашли.
Продолжить чтение ниже
02 из 10Загрузка и импорт EasyGUI
Для этой статьи мы используем стандартную операционную систему Raspbian.
Установка библиотеки будет знакомым процессом для большинства, используя метод apt-get install. Вам понадобится подключение к Интернету на вашем малине Pi, используя проводное Ethernet или WiFi-соединение.
Откройте окно терминала (значок черного экрана на панели задач Pi) и введите следующую команду:
apt-get install python-easygui
Эта команда загрузит библиотеку и установит ее для вас, и это все, что вам нужно сделать. Продолжить чтение ниже EasyGUI необходимо импортировать в скрипт, прежде чем вы сможете использовать его функции. Это достигается путем ввода одной строки в верхней части вашего скрипта и является тем же, независимо от того, какие параметры интерфейса EasyGUI вы используете. Создайте новый скрипт, введя следующую команду в окне терминала: sudo nano easygui.py
Появится пустой экран - это ваш пустой файл (nano - просто имя текстового редактора). Чтобы импортировать EasyGUI в свой скрипт, введите следующую строку: из простойgui импорт *
Мы используем эту конкретную версию импорта, чтобы упростить кодирование. Например, при импорте этого, вместо того, чтобы писать «easygui.msgbox», мы можем просто использовать «msgbox». Теперь давайте рассмотрим некоторые ключевые параметры интерфейса в EasyGUI. Это «окно сообщения» в его простейшей форме дает пользователю строку текста и одну кнопку для клика. Вот пример, чтобы попробовать - введите следующую строку после строки импорта и сохраните Ctrl + X: msgbox («Холодная коробка, да?», «Я - ящик сообщений»)
Чтобы запустить сценарий, используйте следующую команду: sudo python easygui.py
Появится окно с сообщением Я - ящик сообщений записанных в верхнем баре, и Классная коробка? над кнопкой. Продолжить чтение ниже Иногда вам нужно, чтобы пользователь подтвердил действие или решил продолжить или нет. Поле «ccbox» содержит ту же строку текста, что и основное поле сообщения, но содержит 2 кнопки - Продолжить а также отменить. Ниже приведен пример одного из них: кнопка продолжения и отмены печати на терминал. Вы можете изменить действие после нажатия каждой кнопки, чтобы делать все, что вам нравится: из простойgui импорт *время импортаmsg = "Хотели бы вы продолжить?"title = "Продолжить?"если ccbox (msg, title): # показать диалог «Продолжить / Отменить» print «Пользователь выбрал продолжение» # Добавьте другие команды здесь else: # пользователь выбрал Отменить печать «Пользователь отменен» # Добавьте другие команды здесь 06 из 10 Если встроенные опции окна не дают вам то, что вам нужно, вы можете создать пользовательскую кнопку с помощью функции «buttonbox». Это здорово, если у вас есть больше опций, которые требуют покрытия, или, возможно, контролируют количество светодиодов или других компонентов с пользовательским интерфейсом. Вот пример выбора соуса для заказа: из простойgui импорт *время импорта msg = "Какой соус вам нравится?"choice = "Mild", "Hot", "Extra Hot"answer = buttonbox (msg, choice = choice), если ответ == "Mild": распечатать ответесли ответ == "Горячий": распечатать ответif reply == "Extra Hot": распечатать ответ
Продолжить чтение ниже Кнопки великолепны, но для длинных списков опций «поле выбора» имеет большой смысл. Попробуйте установить 10 кнопок в коробке, и вы скоро согласитесь! Эти поля перечисляют доступные параметры в строках один за другим, а в поле «ОК» и «Отменить». Они разумно умны, сортируют параметры по алфавиту, а также позволяют вам нажимать клавишу, чтобы перейти к первому варианту этой буквы. Вот пример, показывающий десять имен, которые вы видите, были отсортированы на скриншоте. из простойgui импорт *время импортаmsg = «Кто выпустил собак?»title = "Отсутствующие собаки"выборы = «Алекс», «Кошка», «Майкл», «Джеймс», «Альберт», «Фил», «Ясмин», «Фрэнк», «Тим», «Ханна»choice = choicebox (msg, title, choice) 08 из 10 Формы - отличный способ захвата данных для вашего проекта, а в EasyGUI есть опция «multenterbox», которая позволяет показывать помеченные поля для захвата информации. Еще раз это случай маркировки полей и просто захват ввода. Ниже мы приводим пример для очень простой формы регистрации членства в спортзале. Существуют варианты добавления валидации и других расширенных функций, которые подробно описывается веб-сайтом EasyGUI. из простойgui импорт *время импортаmsg = "Информация о членах"title = "Форма участия в гимназии"fieldNames = "Имя", "Фамилия", "Возраст", "Вес"fieldValues = # начальные значенияfieldValues = multenterbox (msg, title, fieldNames)print fieldValues Продолжить чтение ниже Вы можете добавлять изображения в свои интерфейсы EasyGUI, включая очень небольшое количество кода. Сохраните изображение на вашем малине Pi в том же каталоге, что и ваш скрипт EasyGUI, и запишите имя и расширение файла (например, image1.png ). Давайте используем кнопку в качестве примера: из простойgui импорт *время импортаimage = "RaspberryPi.jpg"msg = "Это малина Pi?"choice = "Да", "Нет"ответ = кнопка (msg, image = изображение, выбор = выбор)если ответ == "Да": напечатать "Да"еще: напечатать "Нет" 10 из 10 Мы рассмотрели основные «основные» параметры EasyGUI здесь, чтобы вы начали работать, однако есть много вариантов и вариантов доступных коробок в зависимости от того, сколько вы хотите узнать, и чего требует ваш проект. Парольные поля, кодовые окна и даже ящики для файлов доступны для обозначения нескольких. Это очень универсальная библиотека, которую легко забрать за считанные минуты, с некоторыми отличными возможностями управления аппаратным обеспечением. Если вы хотите узнать, как кодировать другие вещи, такие как Java, HTML или более, вы можете увидеть лучшие доступные онлайн-ресурсы для кодирования. Импорт EasyGUI
Основной ящик сообщений
Продолжить или Отменить окно
Пользовательская кнопочная коробка
Коробка выбора
Блок ввода данных
Добавление изображений
Дополнительные функции