Esercizi su GUI complete
blah blah
Editor di testo (su wx.stc)
blah blah
Esercizio: Blocco Note
blah blah
Browser (su wx.html2)
blah blah
MiniBrowser
import wx
import wx.html2
APP_NAME = "Mini Browser"
class Finestra(wx.Frame):
def __init__(self):
super().__init__(None, title=APP_NAME)
panel = wx.Panel(self)
mainLayout = wx.BoxSizer(wx.VERTICAL)
# prima riga -------------------------------------------------
box1 = wx.BoxSizer(wx.HORIZONTAL)
# la URLBAR e il PULSANTE VAI!!!
self.urlbar = wx.TextCtrl(panel, value="", style=wx.TE_PROCESS_ENTER)
self.button = wx.Button(panel,label = "vai")
box1.Add(self.urlbar, proportion=1, flag=wx.ALL, border=5)
box1.Add(self.button, proportion=0, flag=wx.ALL, border=5)
mainLayout.Add(box1, proportion=0, flag=wx.EXPAND, border=0)
# seconda riga -------------------------------------------------
box2 = wx.BoxSizer(wx.HORIZONTAL)
# La WEBVIEW
self.browser = wx.html2.WebView.New(panel)
self.browser.Bind(wx.html2.EVT_WEBVIEW_LOADED, self.hoCaricato)
box2.Add(self.browser, proportion=1, flag=wx.ALL|wx.EXPAND, border=5)
mainLayout.Add(box2, proportion=1, flag=wx.EXPAND, border=0)
panel.SetSizer(mainLayout)
# le ultime cose...
self.button.Bind(wx.EVT_BUTTON, self.loadSite)
self.urlbar.Bind(wx.EVT_TEXT_ENTER, self.loadSite)
# la pagina iniziale
self.caricaSito("https://www.adjam.org/")
self.SetSize(1200,800)
self.Centre()
def loadSite(self,evt):
url = self.urlbar.GetValue()
# semplice "sanificazione"
if not url.startswith("http"):
url = "http://" + url
self.caricaSito(url)
return
def caricaSito(self, url):
self.browser.LoadURL(url)
return
def hoCaricato(self, evt):
self.urlbar.SetValue(self.browser.GetCurrentURL())
self.SetTitle(APP_NAME + " - " + self.browser.GetCurrentTitle())
return
# ----------------------------------------
if __name__ == "__main__":
app = wx.App()
app.SetAppName(APP_NAME)
window = Finestra()
window.Show()
app.MainLoop()
Esercizio: Browser completo, con cronologia e bookmarks
blah blah
Esercizio: PDFViewer
blah blah
MultiMedia Player (su wx.media)
blah blah
Esercizio: Video Player
blah blah
Esercizio: Audio Player
blah blah
Griglia (su wx.grid)
blah blah
Esercizio: Foglio Elettronico
blah blah
Esercizio: Battleship
blah blah
Rich Text Ctrl (su wx.richtext)
blah blah
Esercizio: Word :)
blah blah
DA SISTEMARE (DA QUI IN POI!!!)
-
wx.ListCtrl
- File manager ??
-
DateTime Widgets
- calendario
- orologio
- agenda
-
Visualizzatore Immagini
- GIF Viewer (con play/pause/stop)
- SlideShow (temporizzato)
- SlideShow (con pulsanti AVANTI/INDIETRO)