Un frame ordinario en wxPython se puede construir de manera muy sencilla, heredando simplemente de wx.Frame
.
import wx
class TestFrame(wx.Frame):
def __init__(self,parent,title):
wx.Frame.__init__(self,parent=parent,title=title,size=(400,300))
self.Show()
if __name__=='__main__':
app = wx.App()
fr = TestFrame(None, "Mi Frame")
app.MainLoop()
SetBackgroundColour
, al cual debemos pasarle como argumento un objeto de la clase wx.Colour
o bien una cadena en notación hexadecimal para especificar el color.import wx
class TestFrame(wx.Frame):
def __init__(self,parent,title):
wx.Frame.__init__(self,parent=parent,title=title,size=(400,300))
# Modificando el color de fondo
rojo = wx.Colour(255,0,0)
# rojo = "#ff0000" # Equivalente en notación hexadecimal
self.SetBackgroundColour(rojo)
self.Show()
if __name__=='__main__':
app = wx.App()
fr = TestFrame(None, "Mi Frame")
app.MainLoop()
SetIcon
, al cual debemos pasarle como argumento un objeto de la clase wx.Icon
. Para instanciar un objeto de wx.Icon
necesitamos simplemente pasar como argumento la ruta de la imagen/ícono.import wx
class TestFrame(wx.Frame):
def __init__(self,parent,title):
wx.Frame.__init__(self,parent=parent,title=title,size=(400,300))
# Colocando un ícono
icono = wx.Icon("icono.png")
self.SetIcon(icono)
# ...
self.Show()
if __name__=='__main__':
app = wx.App()
fr = TestFrame(None, "Mi Frame")
app.MainLoop()
wx.DEFAULT_FRAME_STYLE
. Para modificarlo debemos pasar el keyword argument style
con una lista de estilos determinados. Para nuestro caso de una ventana no redimensionable:import wx
class TestFrame(wx.Frame):
def __init__(self,parent,title):
styles = (wx.CLOSE_BOX|wx.CAPTION)
wx.Frame.__init__(self,parent=parent,title=title,size=(400,300),
style=styles)
self.Show()
if __name__=='__main__':
app = wx.App()
fr = TestFrame(None, "Mi Frame")
app.MainLoop()
wx.CAPTION
:import wx
class TestFrame(wx.Frame):
def __init__(self,parent,title):
styles = wx.DEFAULT_FRAME_STYLE & ~ (wx.CAPTION)
wx.Frame.__init__(self,parent=parent,title=title,size=(400,300),
style=styles)
self.SetBackgroundColour("#ff00ff")
self.Show()
if __name__=='__main__':
app = wx.App()
fr = TestFrame(None, "Mi Frame")
app.MainLoop()
wx.DEFAULT_FRAME_STYLE & ~ (wx.CAPTION)
toma todos los estilos incluidos en wx.DEFAULT_FRAME_STYLE
, exceptuando a wx.CAPTION
, un poco de combinación de operaciones lógicas AND-NOT.