Toolkit GUI consigliato per lo sviluppo di Python su Raspberry Pi


31

Sto insegnando a mia figlia Python (e in parte a me stesso) ad usare il Pi, e finora ci siamo trovati benissimo - ma la CLI può portarci solo così lontano. Ho iniziato a guardare altri toolkit, in particolare wx , Qt e GTK . Tutti questi sembrano avere ottimi collegamenti per Linux in generale, anche se non sono in grado di trovare molte informazioni specifiche per il Raspberry Pi. Sono aperto anche ad altri toolkit - a condizione che i binding di Python siano buoni.

Qualcuno ha qualche esperienza di codifica per uno di questi sul pi? Esiste un semplice apt-getcomando che devo eseguire per installare i pacchetti necessari? Meglio ancora, c'è un toolkit pronto per andare con l'immagine stock di Raspbian?

Nota: Attualmente sto usando Raspbian senza problemi, anche se Arch è allettante a causa dei problemi dell'hard-float ABI con mono.

Risposte:


22

Consiglierei Tkinter, è la libreria GUI standard per Python e, di conseguenza, è già installata. L'IDE IDLE (incluso nell'immagine Raspbian) non solo supporta Tkinter ma è esso stesso un'app Tkinter. Inoltre, la maggior parte dei libri di Python includerà almeno un capitolo sulla creazione di GUI con Tkinter. Se preferisci le risorse web, dai un'occhiata al tutorial Tkinter di Pythonware . Ulteriori informazioni e risorse sono disponibili sulla pagina Tkinter di Python.org .


Per il tutorial su Tkinter il link è per la seconda pagina: ecco l'intro se qualcuno lo vuole: pythonware.com/library/tkinter/introduction/whats-tkinter.htm
Anonimo Penguin

2

Ho fatto un po 'di tempo con Tkinter 15 anni fa, poi qualche anno dopo ho fatto qualcosa con Wx. Mentre ero in grado di fare cose, le trovavo entrambe un po 'noiose. Non so quanto sia migliorata la situazione dall'ultima volta che li ho usati - o quanto il mio apprendimento li avrebbe fatti sembrare più facili oggi.

Tuttavia, negli ultimi mesi, ho esplorato PySide , che è un framework compatibile con PyQt. Incredibilmente utile è Qt Designer , che consente di trascinare e rilasciare i componenti (pulsanti, quadranti, cursori, caselle di controllo, ecc.) E salvarli come file XML con l'estensione ".ui". PySide-UIC si legge poi che e produce codice Python. Ci sono alcuni GRANDI video tutorial là fuori.

Bo Milanovich ha una serie di 29 video su Udemy (per $ 15) che ho appena completato, ma ha anche molti altri gratuiti elencati sul sito Qt: http://wiki.qt.io/PySide_Video_Tutorials . Bo può essere un po '"distratto" nelle sue lezioni, andando su tangenti, ma per 29 lezioni in media 30 minuti ciascuna, valeva sicuramente $ 15.

Recentemente ho anche trovato " Qt Designer - PyQt con tutorial sulla programmazione della GUI di Python " ( https://www.youtube.com/watch?v=Dmo8eZG5I2w ). Questo mi ha portato al sito del presentatore che offre introduzioni a Qt, Tkinter e Kivy https://pythonprogramming.net/gui-development-tutorials/ . Non li ho guardati, ma in base al tutorial di Qt Designer che ho guardato, non vedo l'ora di quelli su pythonprogramming.net.

Parte della documentazione ufficiale di PyQt e PySide è un po 'carente. Gran parte di esso è stato convertito tramite un processo automatizzato dalla documentazione originale di Qt e i bit sono stati persi nella traduzione. Quindi, se mancano i documenti su https://pyside.github.io/docs/pyside/ , consulta i documenti su http://doc.qt.io/ e prova a tradurre ciò che leggi in Python. Ma prima guarda i tutorial, perché ti porteranno molta strada.

Ho guardato brevemente GTK alcuni anni fa. Ha anche un designer, radura. Ho pensato di percorrere di nuovo quella strada, ma per le cose che mi interessavano, sembrava che ci fosse più energia dietro Qt. Sto solo iniziando a esplorare Kivy, in quanto sembra essere raccomandato per il lavoro sul touchscreen.

Un po 'in ritardo, ma spero che questo aiuti.


1

tkinter è l'estensione della GUI di TCL che è stata utilizzata molto presto nel ciclo di sviluppo di Python. Inattivo la shell dei comandi di Python utilizza tkinter.

per una GUI è necessario un servizio xorg-x11 (un demone) e un gestore di presentazioni. X11 è dove vivono i driver del dispositivo di visualizzazione. I nomi iniziano con xorg-x11-drv-xxxxx. X11 è un controller HID (Human Interface Device). Anche mouse, tablet, tastiere, ecc. Si collegano al servizio x11.

Il mio gestore delle presentazioni è Gnome, ma ce ne sono almeno 1/2 dozzina. Capisco che Xfce è uno dei più leggeri.

Per gli strumenti di sviluppo di GUI Python uso DrPython (modifica del codice, controllo della sintassi e debug). wxGlade è un ambiente di sviluppo GUI drag and drop di Python abbastanza simile a Visual Basic. Entrambe sono applicazioni wxPython e non richiedono i privilegi di root. Possono essere scaricati da sourceforge.net

Il mio R-Pi-3b è in ordine. Mia nipote ne ha già una, motivo per cui è stato effettuato l'ordine. Sto programmando da oltre 60 anni e in Python da oltre un decennio. Ho sviluppato una serie di compilatori per linguaggi personalizzati e app client / server per l'automazione domestica.


1

Ho sviluppato un'applicazione GUI che gira su raspberry pi 2,3. Ho usato sia tkinter che pyQt4.

Ma dove sia tkinter che pyQt4 richiedono molta più codifica per posizionare i tuoi widget e ci vuole molto tempo per la disposizione del layout.

Nel mio suggerimento usa QT4 designer per creare la tua UI. È molto facile grazie alla funzionalità di trascinamento della selezione, in seguito puoi generare script python .py dal file .ui usando il comando pyuic4 e puoi anche aggiungere immagini nella tua UI usando qt4 designer per che devi creare il file resosurce.rc che in seguito devi convertire usando il comando pyrcc.

Sono disponibili diversi tutorial.


0

Dai un'occhiata a appJar. Non ha le funzionalità di trascinamento della selezione di QT4 Designer di cui sopra, ma puoi creare una bella GUI in pochi minuti a seconda di ciò che stai cercando di realizzare. I documenti sulla loro pagina web mostrano molti ottimi esempi. http://appjar.info/


-2

andare per Pygtk è la migliore e solida roccia stabile ma facile per i principianti


5
Alcuni dettagli aggiuntivi potrebbero aiutare a migliorare questa risposta (cosa la rende la migliore rispetto ad altre alternative, come la installo, cosa la rende semplice).
Steve Robillard,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.