Рекомендуемый инструментарий GUI для разработки Python на Raspberry Pi


31

Я учу свою дочь Python (и себя в некоторой степени), используя Pi, и мы прекрасно провели время до сих пор - но CLI может только довести нас до сих пор. Я начал смотреть на другие наборы инструментов, в частности, wx , Qt и GTK . Похоже, что все они имеют отличные привязки для Linux в целом, хотя я не могу найти много информации, специфичной для Raspberry Pi. Я открыт и для других инструментов - до тех пор, пока привязки Python хороши.

У кого-нибудь есть опыт написания кода для одного из них на пи? Есть ли простая apt-getкоманда, которую мне нужно запустить, чтобы установить необходимые пакеты? А еще лучше, есть ли готовый инструментарий со стандартным изображением Распбиана?

Примечание: в настоящее время я использую Raspbian без проблем, хотя Arch заманчив из-за проблем с ABI в монохромном режиме.

Ответы:


22

Я бы порекомендовал Tkinter, это стандартная библиотека GUI для Python, и в результате она уже установлена. IDLE IDE (которая включена в изображение Raspbian) не только поддерживает Tkinter, но и сама является приложением Tkinter. Кроме того, большинство книг по Python содержат, по крайней мере, главу о создании графических интерфейсов с Tkinter. Если вы предпочитаете веб-ресурсы, вы можете обратиться к руководству по Tkinter от Pythonware . Дополнительную информацию и ресурсы можно найти на странице Tkinter Python.org .


Для учебника по Tkinter ссылка на вторую страницу - вот вступление, если кто-нибудь захочет: pythonware.com/library/tkinter/introduction/whats-tkinter.htm
Anonymous Penguin

2

Я провел немного времени с Tkinter 15 лет назад, а через несколько лет я кое-что сделал с wx. В то время как я был в состоянии сделать вещи, я нашел их немного утомительными. Я не знаю, насколько ситуация улучшилась с тех пор, как я в последний раз их использовал - или насколько мое собственное обучение могло бы помочь им сегодня казаться легче.

Однако в последние несколько месяцев я изучал PySide , который является PyQt-совместимым фреймворком. Невероятно полезным является Qt Designer , который позволяет перетаскивать компоненты (кнопки, шкалы, ползунки, флажки и т. Д.) И сохранять их в виде файла XML с расширением «.ui». Затем pyside-uic читает это и создает код Python. Есть несколько отличных обучающих видео.

У Бо Милановича есть 29 видеороликов об Удеми (за 15 долларов), которые я только что закончил, но также есть несколько бесплатных, перечисленных на сайте Qt: http://wiki.qt.io/PySide_Video_Tutorials . Бо может немного «отвлекаться» на своих уроках, переходя на касательные, но для 29 уроков, в среднем по 30 минут каждый, это определенно стоило 15 долларов.

Я также недавно нашел « Учебник по Qt Designer - PyQt с Python GUI » ( https://www.youtube.com/watch?v=Dmo8eZG5I2w ). Это привело меня на сайт докладчика, который предлагает вводные материалы для Qt, Tkinter и Kivy https://pythonprogramming.net/gui-development-tutorials/ . Я не смотрел их, но, основываясь на учебнике по Qt Designer, который я смотрел, я с нетерпением жду тех, что на pythonprogramming.net.

Некоторой официальной документации PyQt и PySide немного не хватает. Большая часть этого была преобразована с помощью некоторого автоматизированного процесса из оригинальной документации Qt, и биты были потеряны в переводе. Итак, если нет документов на https://pyside.github.io/docs/pyside/ , посмотрите документы на http://doc.qt.io/ и попробуйте перевести то, что вы прочитали, на Python. Но сначала посмотрите учебники, так как они пройдут долгий путь.

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

Немного поздно, но я надеюсь, что это поможет.


1

tkinter - это расширение GUI для TCL, которое использовалось в самом начале цикла разработки Python. IDLE командная оболочка Python использует tkinter.

для графического интерфейса вам нужен сервис xorg-x11 (демон) и менеджер презентаций. X11 - это то место, где живут драйверы устройств отображения. Там имена начинаются с xorg-x11-drv-xxxxx. X11 - это HID (Human Interface Device) контроллер. Мыши, планшеты, клавиатуры и т. Д. Также подключаются к услуге x11.

Мой менеджер презентаций - Gnome, но их как минимум полдюжины. Я понимаю, что Xfce - один из самых легких.

Для инструментов разработки GUI Python я использую DrPython (редактирование кода, проверка синтаксиса и отладка). wxGlade - это среда разработки графического интерфейса для Python, похожая на Visual Basic. Оба являются приложениями wxPython и не требуют привилегий root. Их можно скачать с sourceforge.net

Мой R-Pi-3b на заказ. У моей внучки такой уже есть, поэтому заказ был размещен. Я программирую более 60 лет, а в Python - более десяти лет. Я разработал несколько компиляторов для пользовательских языков и клиент-серверных приложений для домашней автоматизации.


1

Я разработал приложение с графическим интерфейсом, которое работает на Raspberry Pi 2,3. Я использовал как tkinter, так и pyQt4.

Но там, где и tkinter, и pyQt4 требуется гораздо больше кода для размещения ваших виджетов, а для компоновки макета требуется много времени.

В моем предложении использовать QT4 конструктор для создания вашего пользовательского интерфейса. Это очень просто из-за функциональности перетаскивания, позже вы можете сгенерировать Python-скрипт .py из файла .ui с помощью команды pyuic4, а также вы можете добавить изображения в свой пользовательский интерфейс с помощью дизайнера qt4 для что вам нужно создать файл resosurce.rc, который позже необходимо преобразовать с помощью команды pyrcc.

Есть несколько учебных пособий.


0

Посмотрите на appJar. Он не имеет функций перетаскивания в QT4 Designer, о которых говорилось выше, но вы можете создать красивый графический интерфейс всего за несколько минут, в зависимости от того, чего вы пытаетесь достичь. Документы на их веб-странице показывают много замечательных примеров. http://appjar.info/


-2

пойти на pygtk это лучший и надежный стабильный, но легкий для начинающих


5
Некоторые дополнительные детали помогут улучшить этот ответ (что делает его лучшим по сравнению с другими альтернативами, как его установить, что облегчает его).
Стив Робиллард
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.