Tutorial Kivy Python – Inizio

Buon giorno ho ultimamente scoperto una libreria molto interessante chiamata kivy.
La libreria in questione è stata creata per fare giochi per i 5 sistemi operativi desktop e mobile.
Questa libreria infatti tocca Gnu-Linux MacOsx Windows Android ed IOS.
Potete scaricare la libreria per il vostro sistema operativo Desktop da qui.
La programmazione delle applicazioni dovete farla su un Desktop.
La prima settimana di studio di kivy l’ho passata a capire dove erano messe le varie librerie e a che cosa servivano. Facendomi un idea generale e scrivendo i miei appunti sul mio amato quaderno di appunti ho iniziato. Non inizio a buttare codice senza aver parlato almeno delle librerie interne a Kivy.
Importando il modulo kivy.uix abbiamo la possibilità di interfacciarci con una user interface X.
Penso che quella X sia inteso come interfaccia grafica generica. Altre classi degne di nota al momento sono input e core. La classe input gestisce tutto il multitouch dei vari sistemi operativi ma anche la gestione della tastiera e mouse. Dulcis in fundo anche una linux wacomb. Con essa è possibile configurarla per ricreare la firma digitale già usata largamente nelle banche e poste. La classe Core gestisce per quanto ho capito gestisce cose più complesse a livello di dati. Gestisce una vasta collezione tra cui audio, videocamera, gli appunti in memoria, OpenGL, Immagini ,sintesivocale, font, videoplayer e la finestra. Se richiamate kivy.core.window nella console su Mac vi si bloccherà. Volevo spendere due parole riguardo le OpenGL in kivy si cerca di sfruttarla a dovere in quanto è stato pensato per creare giochi. In verità kivy è un progetto molto più vasto di quello che si pensa. Kivy è basato sulle pygame che sfrutta penso un 20% del codice desktop con un perfetto interfacciamento. Essendo stato creato per i giochi quindi anche sotto Android e IOs è possibile gestire e leggere vari formati quali avi e mkv senza mezzi termini. Il tutto possiamo interfacciarlo pure con il web magari dialogando con altri player nel mondo. Come vedete le potenzialità sono infinite con questa libreria. Non a caso Guido Van Rossum il creatore di Python ha detto di concentrarsi su questo progetto perchè promette bene. Il “supporto tecnico” attualmente è solo in inglese tramite canali irc o il Google gruppi. Un consiglio prima di chiedere aiuto cercatevi di leggere quanta più documentazione possibile. Adesso iniziamo con il vero tutorial Helloworld ma prima gestiamo un “errore” che mi è comparso all’inizio al sottoscritto. L’errore in questione riguarda la finestra a tutto schermo e con dimensione fissa.
Per prima cosa apriamo “progetto.py” ovviamente il nome “progetto” potete cambiarlo come vi pare e piace.

1 import kivy
from kivy.config import Config
Config.set(‘graphics’, ‘fullscreen’, ‘auto’)

Queste righe di codice le ho provate e funzionano.
Innanzitutto importiamo il modulo kivy ( Riga 1 )
Il trucco che posso consigliarvi che prima mettete from e poi import.
Il modulo completo sempre in minuscolo mentre Config la C Maiuscola! ( Riga 2 )
Adesso dobbiamo usare la configurazione di sistema e dirgli a kivy di mettere la grafica a tutto schermo con le proporzioni automatiche. Se vogliamo al posto di questo comando possiamo mettere la grandezza della nostra finestra, così come segue.

 

Config.set(‘graphics’, ‘height’, ‘500’)  #altezza
Config.set(‘graphics’, ‘width’, ‘500’)   # larghezza

Nella riga 4 e 5 sono opzionali se avete messo già la riga 3.
Con queste righe potete iniziare la vostra applicazione.
Vi do però un’alternativa valida tramite terminale.
Se usate sistemi unix non so se funziona su windows perchè non l’ho provato.
Scrivete quanto segue :

python mioprogettokivy.py –fullscreen

 

Questo comando come si può intuire avvia l’applicazione a tutto schermo.
Potete scrivere pure per avviare una finestra 640×480 così.
python mioprogettokivy.py –size=640×480

Per una lista più esaustiva di questa vi rimando al comando help

python mioprogettokivy.py –h         -> lista leggermente più lunga!
Ritorniamo al nostro progetto. Potete salvare la configurazione per il progetto attuale con Config.write() .
Per il momento chiudo il post perchè è diventato troppo lungo e continuerò nel prossimo post il classico Helloworld!