Frames and Dialogs → Frame



Overview = """\
A Frame is a window whose size and position can (usually) be changed by
the user. It usually has thick borders and a title bar, and can optionally
contain a menu bar, toolbar and status bar. A frame can contain any window
that is not a Frame or Dialog. It is one of the most fundamental of the
wxWindows components.

A Frame that has a status bar and toolbar created via the
CreateStatusBar、CreateToolBar functions manages these windows, and adjusts
the value returned by GetClientSize to reflect the remaining size available
to application windows. By itself, a Frame is not too useful, but with the addition of Panels and other child objects, it encompasses the framework
around which most user interfaces are constructed.

If you plan on using Sizers and auto-layout features, be aware that the Frame
class lacks the ability to handle these features unless it contains a Panel.
The Panel has all the necessary functionality to both control the size of
child components, and also communicate that information in a useful way to
the Frame itself.
"""


import wx

class Frame(wx.Frame):
def __init__(
  self, parent, id=-1, title='Test Frame', pos=wx.DefaultPosition,
  size=wx.DefaultSize, style=wx.DEFAULT_FRAME_STYLE
  ):
  
  wx.Frame.__init__(self, parent, id, title, pos, size, style)
  panel = wx.Panel(self, -1)
  
  button = wx.Button(panel, wx.NewId(), "Close Me")
  self.Bind(wx.EVT_BUTTON, self.OnCloseMe, button)
  
def OnCloseMe(self, event):
  self.Close(True)
  
def TestFrame():
app = wx.PySimpleApp()
frame = Frame(parent=None)
frame.Centre()
frame.Show()
app.MainLoop()

if __name__ == "__main__":
TestFrame()