Ehi! c'è un problema qui: dobbiamo scegliere quale pacchetto usare, ce ne sono diversi. Propongo di provare wxPython per un paio di ragioni: 1) è quello che uso abitualmente; 2) non solo io, è il più usato; 3) è completo e facile; 4) c'è quasi pronta la versione per il 3.x (sarebbe anche ora!).
Però niente panico! Una volta capito come si fa cambiare è immediato.
OK, ancora qui? Bene, per prima cosa dobbiamo installare wxPython. Basta andare sul sito
http://wxpython.org/
e in download trovate tutte le dritte. Per Ubuntu e Debian (come me) c'è tutto qui
La pagina non sembra molto aggiornata ma funziona.
OK, fatto?
Allora proviamo, una cosa semplicissima, una finestra vuota (f0.py):
#!/usr/bin/python
# -*- coding: utf-8 -*-
import wx
app = wx.App()
frame = wx.Frame(None, -1, 'Prima Prova')
frame.Show()
app.MainLoop()
Semplice vero? Delle prime due righe di codice ormai sappiamo tutto, segue l'istruzione di importazione del package wx, ovvio, lo dobbiamo usare e poiapp = wx.App()
definisce la variabile app, la nostra applicazione, del tipo wx.App. Ogni programma wxPython deve avere un oggetto di tipo applicazione (App).
frame = wx.Frame(None, -1, 'Prima Prova')
frame.Show()
L'oggetto wx.Frame (telaio) è un contenitore all'interno del quale sarà possibile inserire altri oggetti wx. In questo caso non ha genitore/parent (None), l'id (identificatore dell'oggetto) viene lasciato indefinito (-1), sarà definito da wx, e "Prima Prova" è il titolo che comparirà nella barra della finestra.
Una volta definito dobbiamo visualizzarlo con show().
app.MainLoop()
A questo punto abbiamo la nostra applicazione pronta e possiamo eseguire il ciclo infinito di mainloop. Questo ciclo gestirà i metodi usuali (click del mouse, spostamento, ridimensionamento e chusura). È tutto.
L'oggetto Frame è più complesso di quello che abbiamo usato:
wx.Frame(wx.Window parent, int id=-1, string title='', wx.Point pos = wx.DefaultPosition, wx.Size size = wx.DefaultSize, style = wx.DEFAULT_FRAME_STYLE, string name = "frame")
dove wx.DEFAULT_FRAME_STYLE è uguale a wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.RESIZE_BORDER | wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX | wx.CLIP_CHILDREN.
Proviamo a cambiare qualcosa (f1.py):
#!/usr/bin/python
# -*- coding: utf-8 -*-
import wx
app = wx.App()
win = wx.Frame(None, style = wx.CLOSE_BOX | wx.CAPTION,
size = (200, 150), pos = (100, 100),
title = 'Seconda Prova')
win.Show()
app.MainLoop()
OK? Cos'è cambiato? Qualche pulsante è sparito, la finestra non si può ridimensionare, viene sempre visualizzata in quella posizione e con le dimensioni che vogliamo noi.Basterebbe riempirla; cosa che vedremo prossimamente.
Per intanto, un regalo di natale in anticipo. Fate un salto a questo URL
è quello che ho usato per questo post.
Juhan.
Ora con la grafica ci sarà veramente da divertirsi...io, però,uso un modulo diverso. Il maestro mi perdonerà. Magari prossimamente vi dirò quale... :)
L'indice di "Mission Python" lo trovate qui.
Alla prossima!
Prima di tutto grazie per questo corso, stò finalmente capendo qualcosina di Python grazie a voi, però avrei una richiesta: si potrebbero aggiungere le versioni in pdf di ogni lezione, in modo da poter conservare sul pc in offline? Sempre se non sono il solo a richiederlo...
RispondiEliminaSe riesco a trovare il plugin, aggiungo la funzionalità. Grazie a te per il commento. :)
EliminaProva con Print Friendly: http://www.printfriendly.com/
EliminaHa un paio di difetti: il codice lo riporta in bianco su sfondo bianco e se provi a copiarlo perdi i rientri, fondamentali per Python. Il sistema, secondo me, è File/Salva pagina con nome.
Ancora: trovato questo, più casinato ma migliore: http://css-tricks.com/examples/ThePrintliminator/
EliminaPenso che ci siano due soluzioni altrettanto valide per trasformare una pagine web in pdf...ecco:
Eliminahttp://parliamodi-ubuntu.blogspot.it/2010/10/wkhtmltopdf.html
http://parliamodi-ubuntu.blogspot.it/2010/12/convertire-pagine-web-in-pdf-con.html
Buongiorno, finalmente posso tornare a leggere il mio corso python preferito :)
RispondiEliminaScusate la lunga assenza ma ero immerso nella RHCSA, finalmente presa :), ed ora torno con la lezione più interessante.
P.s. la parte grafica lo ammetto non l'ho mai capita XD
Bentornato!! :)
Elimina// Go
RispondiEliminafor {
fmt.Println("QT")
}
Grande Roberto!!! :)
Elimina