Pagina 1 di 2
[Guida]Programmazione/Python/InterfacceGrafichePy3
Inviato: lunedì 2 marzo 2020, 17:18
da maur1x_15
Salve,
ho iniziato a revisionare la pagina
Programmazione/Python/InterfacceGrafiche.
Ecco la mia pagina di prova:
mtramonti2007/provaGUIPython3
Il listato che usa Tkinter funziona, usavo già da un po' di tempo questa libreria ed è stato facile convertirlo a Python3.
Purtroppo, non avendo mai usato wxPython e PyGTK non sono riuscito a migrarli a Python3 perché ottenevo diversi errori come:
Codice: Seleziona tutto
'gi.repository.Gtk' object has no attribute 'WINDOW_TOPLEVEL'
Codice: Seleziona tutto
AttributeError: module 'wx' has no attribute 'PreFrame'
Perciò, se qualche utente fosse in grado di adattare questi due listati sarebbe di grande aiuto
In questi giorni comunque, visto che avrò molto tempo libero (causa scuole chiuse nella mia regione

) farò qualche ricerca.
Link alla wiki
Programmazione/Python/InterfacceGrafichePython3.
Re: [Guida] Programmazione/Python/InterfacceGraficePy3
Inviato: lunedì 2 marzo 2020, 17:28
da wilecoyote
) Salve, ottimo, appena pronta fai sapere.

Valorizza al massimo il coronavirus per erudirti, non sarà tempo perso.
:: Ciao
Re: [Guida] Programmazione/Python/InterfacceGraficePy3
Inviato: lunedì 2 marzo 2020, 20:12
da maur1x_15
Pronto il listato di wxPython!
Sono soddisfatto del codice che ho scritto, ma ve lo allego anche casomai qualcuno avesse correzioni da fare
@wilecoyote: per qualche strano motivo, nella mia pgina di prova il sottotitolo
wxPython non diventa più grande ma rimane "
= wxPython ="
Domani vado a leggermi qualche tutorial su PyGTK
Re: [Guida] Programmazione/Python/InterfacceGraficePy3
Inviato: martedì 3 marzo 2020, 1:41
da xavier77
MauroTramonti ha scritto: ↑lunedì 2 marzo 2020, 20:12
per qualche strano motivo, nella mia pgina di prova il sottotitolo
wxPython non diventa più grande ma rimane "
= wxPython ="
Corretto!
bastava togliere lo spazio dopo il carattere "=".

Re: [Guida] Programmazione/Python/InterfacceGraficePy3
Inviato: martedì 3 marzo 2020, 16:34
da maur1x_15
Salve,
pagina di prova completata!
Tutti e tre i listati funzionano, e sono molto simili a quelli Python 2.
Se non ci sono altre correzioni da fare, potete pubblicarla

Re: [Guida] Programmazione/Python/InterfacceGraficePy3
Inviato: martedì 3 marzo 2020, 16:49
da wilecoyote
) Salve, benissimo, procedo al caricamento.
Alcuni punti da chiarire, intanto modifico l'ordine degli script come nella versione
Python 2, poi questi passaggi:
GTK+ è un toolkit per la creazione di interfacce grafiche è stato progettato inizialmente come ausilio alla programmazione per [[Grafica/Gimp|GIMP]] ed è diventato una parte fondamentale dell'ambiente [[AmbienteGrafico/Gnome| GNOME]].
'''PyGTK''' è un set di moduli che permettono l'interfacciamento tra Python e le librerie GTK, è un toolkit orientato agli oggetti, permette quindi la possibilità di riutilizzare dello stesso codice in più applicazioni.
Questa è una versione del programma `AreaTriangolo2.py`, presente all'interno di [[Programmazione/Python/Listati#areatraingolo2| questa pagina]], che utilizza le librerie '''wxpython'''.
Suppongo che vanno integrati giusto ?
:: Ciao
Re: [Guida] Programmazione/Python/InterfacceGraficePy3
Inviato: martedì 3 marzo 2020, 16:51
da maur1x_15
wilecoyote ha scritto: ↑martedì 3 marzo 2020, 16:49
) Salve, benissimo, procedo al caricamento.
Alcuni punti da chiarire, intanto modifico l'ordine degli script come nella versione
Python 2, poi questi passaggi:
GTK+ è un toolkit per la creazione di interfacce grafiche è stato progettato inizialmente come ausilio alla programmazione per [[Grafica/Gimp|GIMP]] ed è diventato una parte fondamentale dell'ambiente [[AmbienteGrafico/Gnome| GNOME]].
'''PyGTK''' è un set di moduli che permettono l'interfacciamento tra Python e le librerie GTK, è un toolkit orientato agli oggetti, permette quindi la possibilità di riutilizzare dello stesso codice in più applicazioni.
Questa è una versione del programma `AreaTriangolo2.py`, presente all'interno di [[Programmazione/Python/Listati#areatraingolo2| questa pagina]], che utilizza le librerie '''wxpython'''.
Suppongo che vanno integrati giusto ?
:: Ciao
Salve,
esatto, me n'ero dimenticato. Grazie

Re: [Guida] Programmazione/Python/InterfacceGraficePy3
Inviato: martedì 3 marzo 2020, 16:59
da wilecoyote
) Salve, ottimo, dai un'occhiata alle mie correzioni e se ti sembra tutto a posto procedo.
Già che ci siamo, confermi che anche la versione Python 2 funziona ? In tal caso segnalalo nella sua discussione così acconcio anch'essa.
:: Ciao
Re: [Guida] Programmazione/Python/InterfacceGraficePy3
Inviato: martedì 3 marzo 2020, 17:17
da maur1x_15
Salve,
sì la guida ora è a posto. Ho solo corretto un piccolo errore di battitura.

Re: [Guida] Programmazione/Python/InterfacceGraficePy3
Inviato: martedì 3 marzo 2020, 17:48
da wilecoyote
) Salve, fatto tutto, caricato pagina, tabellata in
GruppoDocumentazione/LavoroSvolto ed integrato il link in
Programmazione/Python.
Link alla wiki
Programmazione/Python/InterfacceGrafichePython3.
Grazie del contributo.
:: Ciao
Re: [Guida]Programmazione/Python/InterfacceGrafichePy3
Inviato: mercoledì 11 gennaio 2023, 12:51
da rai
Sto rivedendo con la 20.04 e 22.04 la
Programmazione/Python/InterfacceGrafichePython3 e vorrei aggiungere un esempio di codice per la libreria Qt che per ora non viene nemmeno citata.
Metto il link della mia pagina di prova
rai/Prove0, con quello che ho fatto finora.
nella sezione GTK:
· lo script originale aveva un errore per cui andava in crash
· ho corretto alcune improprietà stilistiche rispetto alla guida PEP 8
· ho corretto un rigo che dava un PyGTKDeprecationWarning
nella sezione Tk:
· l'originale aveva un bug per cui non funzionava la gestione degli errori
· ho corretto alcune improprietà stilistiche rispetto alla guida PEP 8
nella sezione wxPython:
· l'originale accetta solo numeri interi a causa del modo scelto per validare gli input numerici
· inoltre una serie di cose (poca programmazione a oggetti, stile non PEP8-compliant, ripetizioni inutili) mi hanno convinto a rifattorizzare completamente lo script, sul calco degli altri esempi della stessa pagina wiki
Re: [Guida]Programmazione/Python/InterfacceGrafichePy3
Inviato: mercoledì 11 gennaio 2023, 16:31
da wilecoyote
) Salve, @rai ho fatto delle piccole correzioni d'adeguamento allo standard wiki.
Copiale anche nelle altre wiki su Python che stai aggiornando.
Grazie del contributo.
:: Ciao
P.S. il Qt5 è stato affiancato dal Qt6, ergo appena il 6 sarà ritenuto maturo il 5 sarà deprecato.
Re: [Guida]Programmazione/Python/InterfacceGrafichePy3
Inviato: giovedì 19 gennaio 2023, 21:59
da rai
Credo di avere applicato qui tutte le modifiche richieste dallo standard wiki.
Ho aggiunto il codice d'esempio per Qt, riproducendo le stesse caratteristiche spartane e senza fronzoli dei listati già presenti.
Riguardo al Qt6 è vero: il Qt5 rimane supportato fino a maggio 2023, quindi sì, bisogna fare i conti con questo aggiornamento.
Il mio codice è scritto per funzionare sia con PyQt5 che con PyQt6 (naturalmente per usare l'uno o l'altro si deve modificare opportunamente le righe 6, 7 e 8 in cui si fà l'import).
Il fatto è che il pacchetto python3-pyqt6 non c'è nei repo ufficiali fino alla 22.04 inclusa e bisogna quindi consigliare di installarlo tramite pip. Verificate se la forma che ho usato è wikiana
Stavo facendo, sempre in Qt, una versione più evoluta di questa piccola applicazione, come esempio di scrittura di una interfaccia grafica più responsiva e con più feedback visivi. In breve: migliore user experience
Naturalmente il codice è un po' più complicato e prima di perderci tempo mi sono fermato per chiedere qui: è il caso di aggiungere un listato per utenti più ambiziosi o è fuori luogo?
Re: [Guida]Programmazione/Python/InterfacceGrafichePy3
Inviato: giovedì 19 gennaio 2023, 22:13
da wilecoyote
) Salve, dipende quanto la versione è più evoluta dell'esempio PyQt.
Se il codice raddoppia, o peggio, forse bisogna farsi qualche domanda, se è un po' più lungo può essere più interessante.
:: Ciao
Re: [Guida]Programmazione/Python/InterfacceGrafichePy3
Inviato: venerdì 20 gennaio 2023, 9:10
da rai
wilecoyote ha scritto: ↑giovedì 19 gennaio 2023, 22:13
Se il codice raddoppia, o peggio, forse bisogna farsi qualche domanda, se è un po' più lungo può essere più interessante.
Un'interfaccia grafica fatta bene richiede un bel po' di righe di codice: è pacifico che lo script diventa più del doppio di quello attuale, infatti mi sono fatto la domanda e non tanto per la lunghezza (a un certo punto chi se ne frega se sono 500 linee, il codice sta nel suo box e lo legge solo chi lo fa scrollare) quanto per l'utilità o meno di mettere un esempio complesso in una wiki generalista come questa
Re: [Guida]Programmazione/Python/InterfacceGrafichePy3
Inviato: venerdì 20 gennaio 2023, 12:02
da wilecoyote
) Salve, allora facciamo 1 prova, carica il codice più ricco e vediamo il risultato, se è più formativo può essere preferibile.
Intanto ho sistemato l'installazione dei PyQt5 e PyQt6, come fatto anche in altre wiki.
:: Ciao
Re: [Guida]Programmazione/Python/InterfacceGrafichePy3
Inviato: venerdì 20 gennaio 2023, 13:45
da rai
Intanto ho sistemato l'installazione dei PyQt5 e PyQt6, come fatto anche in altre wiki.
trovo peggiorativa la tua ultima modifica perchè complica le cose
molto in un modo a mio vedere
poco utile:
la precedente versione
Codice: Seleziona tutto
Per la serie 5 delle librerie Qt il supporto cesserà a maggio 2023. È consigliato usare per i nuovi progetti la versione 6.
Per usare le librerie nella versione Qt5 installare il pacchetto python3-pyqt5.
Per usare le librerie nella versione Qt6 installare il pacchetto pip3 e in seguito digitare nel terminale:
pip3 install pyQt6
la tua versione
Codice: Seleziona tutto
Per la serie 5 delle librerie Qt il supporto cesserà a maggio 2023. È consigliato usare per i nuovi progetti la versione 6.
Installazione
Pacchetto deb
Per usare le librerie nella versione Qt5 installare il pacchetto python3-pyqt5.
Per usare le librerie nella versione Qt6 da Ubuntu 22.10 e successivi installare il pacchetto python3-pyqt6.
Fino a Ubuntu 22.04 la versione 6 della suite di pacchetti Python3-PyQt6 non è disponibile nei repository ufficiali.
In alternativa possono essere installati tramite il PPA Qt 6.2.x - backports, che fornisce sia versioni più recenti delle librerie Qt6 rispetto a quelle del repository ufficiale, sia la suite di pacchetti Python3-PyQt6 fino a Ubuntu 22.04.
Digitare nel terminale il comando:
sudo add-apt-repository ppa:savoury1/qt-6-2
Aggiornare il database dei pacchetti:
sudo apt update
Installare il pacchetto python3-pyqt6.
Tramite pip
installare il pacchetto pip3.
Digitare nel terminale, in funzione della versione scelta, uno dei seguenti comandi:
pip3 install pyQt5
o
pip3 install pyQt6
Io la vedo così:
Se il python3-pyqt6 è presente nei repo ufficiali il wiki dà la priorità alla sua installazione.
Se e solo se il pacchetto non c'è il wiki consiglia di usare pip3.
Non conosco quel repo che hai proposto ma diffido dei PPA e non ne vedo la necessità, anche tenuto conto che se vuoi programmare con Python, pip3 prima o poi lo installi.
Va bene per lo script, mi ci metto
Re: [Guida]Programmazione/Python/InterfacceGrafichePy3
Inviato: venerdì 20 gennaio 2023, 14:43
da wilecoyote
) Salve, ma in effetti ho consigliato il pacchetto ufficiale se c'è, mentre solo in mancanza indico il
ppa.
Il
pip è comodo, però non può aggiornare tutta la suite
Qt6, oltretutto col fresco rilascio sarà oggetto di varie correzioni nei primi tempi, col ché nel tempo diventerà obsoleta.
Col
ppa le versioni dei vari «pezzi» del
Qt6 restano coerenti, in più da la possibilità a release ancora supportate,
20.04 e
22.04, d'aggiornare il medesimo.
Il
ppa savoury è valido, usato per diverse necessità e mai avuto grane o peggio.
Il 1° esempio di wiki in cui s'è fatta la stessa integrazione è
Programmazione/Gambas, ma c'è ne altre.
:: Ciao
Re: [Guida]Programmazione/Python/InterfacceGrafichePy3
Inviato: mercoledì 1 febbraio 2023, 18:04
da rai
Ho aggiunto nella
/rai/Prove0 il codice per un esempio sempre della stessa applicazione, più prolisso ma forse più soddisfacente per l'utente. Funziona solo con le Qt6.
Re: [Guida]Programmazione/Python/InterfacceGrafichePy3
Inviato: mercoledì 1 febbraio 2023, 22:27
da wilecoyote
) Salve, se le ritieni complete parto pella revisione e pubblicazione.
:: Ciao