Home / Programmazione / Python / Creare un Frame con wxPython
Mattepuffo

Creare un Frame con wxPython

Creare un Frame con wxPython

E piano piano siamo arrivati anche a Python!

Il primo articolo di questo linguaggio riguarda la crezione di una finestra usando le librerie grafiche wxPython.

Le librerie wx sono open e multipiattaform, e ci sono porting per vari linguaggi.

La guida è basata su Python 2.7.

Cercando di fare subito le cose bene, facciamo subito le cose OOP.

Creiamo due file, uno che è i file di init, e uno che contiene la classe per il Frame.

Il primo file l'ho chiamato __init.py con questo dentro:

import wx
from Form import *

if __name__ == "__main__":
    app = wx.App()
    f = Form()
    f.Show()
    app.MainLoop()

Prima di tutto imprtiamo le librerie wx e richiamiamo anche l'altra classe con il Frame.

Sotto inizializimo la App e mostriamo il Frame; questo è il classico modo per lanciare le applicazioni wxPython.

Solo che noi il nostro Frame ce lo abbiamo in una classe apposita; creiamo il secondo file Form.py e la nostra classe:

import wx
from wx._controls import Button

class Form(wx.Frame):
    
    txtUrl = None
    lblWait = None

    def __init__(self):
        # INIT FRAME
        wx.Frame.__init__(self, None, title = "Python", size = (500, 600), style = wx.DEFAULT_FRAME_STYLE ^ wx.RESIZE_BORDER)
        # TXT PER URL
        self.txtUrl = wx.TextCtrl(self, pos = (5, 5), size = (400, 25))
        self.txtUrl.SetFocus()
        # BOTTONE ED EVENTO
        btnGo = Button(self, label = "Download", pos = (410, 5))
        # LABEL
        self.lblWait = wx.StaticText(self, pos = (5, 40), size = (50, 15))
        # TXT PER OUTPUT
        self.txtResult = wx.TextCtrl(self, pos = (5, 60), size = (491, 535), style = wx.TE_MULTILINE | wx.TE_READONLY | wx.HSCROLL)

Il nostro Frame si avrà due textbox e un bottone; poi nei prossimi articoli faremo altre aggiunte come eventi e quant'altro, fino a costruire una piccola app per lanciare un comando da terminale.

Dentro alla funzione __init_ (il costruttore), prima di tutto impostiamo diverse opzioni al Frame.

Poi aggiungiamo i componenti, e ad ognuno impostiamo posizione, size, ecc.

Notate che impostiamo anche il focus sulla prima textbox.

In questo caso non ho usato Panel e layout in quanto per pochi componenti non mi è servito.

Ma nel caso di applicazioni più grandi conviene strutturare meglio la gui.

Diciamo che non è molto complicato, e che per ora non abbiamo fatto un granchè.

Ma segnatevi il tutto perchè nei prossimi articoli andremo a implementare altre cose partendo da questa gui.

Ciao!!