[Guida]Programmazione/Python/InterfacceGrafichePy3

Richieste di nuove guide, traduzioni, offerte di collaborazione e comunicazioni da parte del gruppo agli utenti.

Moderatore: Gruppo Documentazione

Avatar utente
maur1x_15
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 305
Iscrizione: giovedì 22 giugno 2017, 11:24
Sesso: Maschile

[Guida]Programmazione/Python/InterfacceGrafichePy3

Messaggio 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 :D

In questi giorni comunque, visto che avrò molto tempo libero (causa scuole chiuse nella mia regione :) ) farò qualche ricerca. :ciao:

Link alla wiki Programmazione/Python/InterfacceGrafichePython3.
Ultima modifica di wilecoyote il mercoledì 4 marzo 2020, 14:22, modificato 1 volta in totale.
Motivazione: Inserimento link alla pagina wiki
Computer: 120 GB SSD - 8 GB RAM - CPU Intel Pentium Gold 4415U@2.30 GHz x 4 - Windows 11 Home

I vecchi se la prendono con noi giovani perché usiamo la tecnologia, che hanno creato i vecchi quando erano giovani...
Avatar utente
wilecoyote
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 15720
Iscrizione: giovedì 20 agosto 2009, 16:21
Desktop: Kubuntu et alii
Distribuzione: 9.04 32bit 14/18/20/22.04 LTS 64bit
Sesso: Maschile
Località: Ceranesi - Ge

Re: [Guida] Programmazione/Python/InterfacceGraficePy3

Messaggio da wilecoyote »

) Salve, ottimo, appena pronta fai sapere.

:ot: Valorizza al massimo il coronavirus per erudirti, non sarà tempo perso.

:: Ciao
ACER Extensa 5230E 2,2 Ghz cpu Celeron 900 hdd 160 GB Ram 1 GB scheda video Intel GM500
ACER Extensa 5635Z 2,2 Ghz cpu Celeron T3100 hdd 320 GB Ram 4 GB scheda video Intel Mobile 4
Quando una Finestra chiusa incontra un Pinguino la Finestra chiusa è una Finestra aperta.
Avatar utente
maur1x_15
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 305
Iscrizione: giovedì 22 giugno 2017, 11:24
Sesso: Maschile

Re: [Guida] Programmazione/Python/InterfacceGraficePy3

Messaggio 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 =" :muro:

Domani vado a leggermi qualche tutorial su PyGTK :ciao:


mauro.zip
(1.36 KiB) Scaricato 50 volte
Computer: 120 GB SSD - 8 GB RAM - CPU Intel Pentium Gold 4415U@2.30 GHz x 4 - Windows 11 Home

I vecchi se la prendono con noi giovani perché usiamo la tecnologia, che hanno creato i vecchi quando erano giovani...
Avatar utente
xavier77
Gruppo Documentazione
Gruppo Documentazione
Messaggi: 7831
Iscrizione: venerdì 21 settembre 2012, 16:37
Desktop: GNOME, Xfce (e altri)
Distribuzione: X/Ubuntu 22.04/20.04 + eOS + altre
Sesso: Maschile
Contatti:

Re: [Guida] Programmazione/Python/InterfacceGraficePy3

Messaggio 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 =" :muro:
Corretto!
bastava togliere lo spazio dopo il carattere "=". ;)
Avatar utente
maur1x_15
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 305
Iscrizione: giovedì 22 giugno 2017, 11:24
Sesso: Maschile

Re: [Guida] Programmazione/Python/InterfacceGraficePy3

Messaggio 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 :ciao:
Computer: 120 GB SSD - 8 GB RAM - CPU Intel Pentium Gold 4415U@2.30 GHz x 4 - Windows 11 Home

I vecchi se la prendono con noi giovani perché usiamo la tecnologia, che hanno creato i vecchi quando erano giovani...
Avatar utente
wilecoyote
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 15720
Iscrizione: giovedì 20 agosto 2009, 16:21
Desktop: Kubuntu et alii
Distribuzione: 9.04 32bit 14/18/20/22.04 LTS 64bit
Sesso: Maschile
Località: Ceranesi - Ge

Re: [Guida] Programmazione/Python/InterfacceGraficePy3

Messaggio 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
ACER Extensa 5230E 2,2 Ghz cpu Celeron 900 hdd 160 GB Ram 1 GB scheda video Intel GM500
ACER Extensa 5635Z 2,2 Ghz cpu Celeron T3100 hdd 320 GB Ram 4 GB scheda video Intel Mobile 4
Quando una Finestra chiusa incontra un Pinguino la Finestra chiusa è una Finestra aperta.
Avatar utente
maur1x_15
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 305
Iscrizione: giovedì 22 giugno 2017, 11:24
Sesso: Maschile

Re: [Guida] Programmazione/Python/InterfacceGraficePy3

Messaggio 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 :ciao:
Computer: 120 GB SSD - 8 GB RAM - CPU Intel Pentium Gold 4415U@2.30 GHz x 4 - Windows 11 Home

I vecchi se la prendono con noi giovani perché usiamo la tecnologia, che hanno creato i vecchi quando erano giovani...
Avatar utente
wilecoyote
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 15720
Iscrizione: giovedì 20 agosto 2009, 16:21
Desktop: Kubuntu et alii
Distribuzione: 9.04 32bit 14/18/20/22.04 LTS 64bit
Sesso: Maschile
Località: Ceranesi - Ge

Re: [Guida] Programmazione/Python/InterfacceGraficePy3

Messaggio 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
ACER Extensa 5230E 2,2 Ghz cpu Celeron 900 hdd 160 GB Ram 1 GB scheda video Intel GM500
ACER Extensa 5635Z 2,2 Ghz cpu Celeron T3100 hdd 320 GB Ram 4 GB scheda video Intel Mobile 4
Quando una Finestra chiusa incontra un Pinguino la Finestra chiusa è una Finestra aperta.
Avatar utente
maur1x_15
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 305
Iscrizione: giovedì 22 giugno 2017, 11:24
Sesso: Maschile

Re: [Guida] Programmazione/Python/InterfacceGraficePy3

Messaggio da maur1x_15 »

Salve,
sì la guida ora è a posto. Ho solo corretto un piccolo errore di battitura. :ciao:
Computer: 120 GB SSD - 8 GB RAM - CPU Intel Pentium Gold 4415U@2.30 GHz x 4 - Windows 11 Home

I vecchi se la prendono con noi giovani perché usiamo la tecnologia, che hanno creato i vecchi quando erano giovani...
Avatar utente
wilecoyote
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 15720
Iscrizione: giovedì 20 agosto 2009, 16:21
Desktop: Kubuntu et alii
Distribuzione: 9.04 32bit 14/18/20/22.04 LTS 64bit
Sesso: Maschile
Località: Ceranesi - Ge

Re: [Guida] Programmazione/Python/InterfacceGraficePy3

Messaggio 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
ACER Extensa 5230E 2,2 Ghz cpu Celeron 900 hdd 160 GB Ram 1 GB scheda video Intel GM500
ACER Extensa 5635Z 2,2 Ghz cpu Celeron T3100 hdd 320 GB Ram 4 GB scheda video Intel Mobile 4
Quando una Finestra chiusa incontra un Pinguino la Finestra chiusa è una Finestra aperta.
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2874
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: [Guida]Programmazione/Python/InterfacceGrafichePy3

Messaggio 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
Ultima modifica di wilecoyote il mercoledì 11 gennaio 2023, 16:34, modificato 1 volta in totale.
Motivazione: Corretto forma del link alla pagina di prova.
Avatar utente
wilecoyote
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 15720
Iscrizione: giovedì 20 agosto 2009, 16:21
Desktop: Kubuntu et alii
Distribuzione: 9.04 32bit 14/18/20/22.04 LTS 64bit
Sesso: Maschile
Località: Ceranesi - Ge

Re: [Guida]Programmazione/Python/InterfacceGrafichePy3

Messaggio 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.
ACER Extensa 5230E 2,2 Ghz cpu Celeron 900 hdd 160 GB Ram 1 GB scheda video Intel GM500
ACER Extensa 5635Z 2,2 Ghz cpu Celeron T3100 hdd 320 GB Ram 4 GB scheda video Intel Mobile 4
Quando una Finestra chiusa incontra un Pinguino la Finestra chiusa è una Finestra aperta.
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2874
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: [Guida]Programmazione/Python/InterfacceGrafichePy3

Messaggio 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?
Avatar utente
wilecoyote
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 15720
Iscrizione: giovedì 20 agosto 2009, 16:21
Desktop: Kubuntu et alii
Distribuzione: 9.04 32bit 14/18/20/22.04 LTS 64bit
Sesso: Maschile
Località: Ceranesi - Ge

Re: [Guida]Programmazione/Python/InterfacceGrafichePy3

Messaggio 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
ACER Extensa 5230E 2,2 Ghz cpu Celeron 900 hdd 160 GB Ram 1 GB scheda video Intel GM500
ACER Extensa 5635Z 2,2 Ghz cpu Celeron T3100 hdd 320 GB Ram 4 GB scheda video Intel Mobile 4
Quando una Finestra chiusa incontra un Pinguino la Finestra chiusa è una Finestra aperta.
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2874
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: [Guida]Programmazione/Python/InterfacceGrafichePy3

Messaggio 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
Avatar utente
wilecoyote
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 15720
Iscrizione: giovedì 20 agosto 2009, 16:21
Desktop: Kubuntu et alii
Distribuzione: 9.04 32bit 14/18/20/22.04 LTS 64bit
Sesso: Maschile
Località: Ceranesi - Ge

Re: [Guida]Programmazione/Python/InterfacceGrafichePy3

Messaggio 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
ACER Extensa 5230E 2,2 Ghz cpu Celeron 900 hdd 160 GB Ram 1 GB scheda video Intel GM500
ACER Extensa 5635Z 2,2 Ghz cpu Celeron T3100 hdd 320 GB Ram 4 GB scheda video Intel Mobile 4
Quando una Finestra chiusa incontra un Pinguino la Finestra chiusa è una Finestra aperta.
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2874
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: [Guida]Programmazione/Python/InterfacceGrafichePy3

Messaggio 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
Avatar utente
wilecoyote
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 15720
Iscrizione: giovedì 20 agosto 2009, 16:21
Desktop: Kubuntu et alii
Distribuzione: 9.04 32bit 14/18/20/22.04 LTS 64bit
Sesso: Maschile
Località: Ceranesi - Ge

Re: [Guida]Programmazione/Python/InterfacceGrafichePy3

Messaggio 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
ACER Extensa 5230E 2,2 Ghz cpu Celeron 900 hdd 160 GB Ram 1 GB scheda video Intel GM500
ACER Extensa 5635Z 2,2 Ghz cpu Celeron T3100 hdd 320 GB Ram 4 GB scheda video Intel Mobile 4
Quando una Finestra chiusa incontra un Pinguino la Finestra chiusa è una Finestra aperta.
rai
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2874
Iscrizione: domenica 11 maggio 2008, 18:03
Desktop: plasma
Distribuzione: 22.04
Località: Palermo

Re: [Guida]Programmazione/Python/InterfacceGrafichePy3

Messaggio 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.
Avatar utente
wilecoyote
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 15720
Iscrizione: giovedì 20 agosto 2009, 16:21
Desktop: Kubuntu et alii
Distribuzione: 9.04 32bit 14/18/20/22.04 LTS 64bit
Sesso: Maschile
Località: Ceranesi - Ge

Re: [Guida]Programmazione/Python/InterfacceGrafichePy3

Messaggio da wilecoyote »

) Salve, se le ritieni complete parto pella revisione e pubblicazione.

:: Ciao
ACER Extensa 5230E 2,2 Ghz cpu Celeron 900 hdd 160 GB Ram 1 GB scheda video Intel GM500
ACER Extensa 5635Z 2,2 Ghz cpu Celeron T3100 hdd 320 GB Ram 4 GB scheda video Intel Mobile 4
Quando una Finestra chiusa incontra un Pinguino la Finestra chiusa è una Finestra aperta.
Scrivi risposta

Ritorna a “Gruppo Documentazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 9 ospiti