In this wxPython article i want to show you How To Create MessageBox in wxPython. so MessageBox in wxPython is a dialog function which displays a MessageBox with an optional icon. There are three different MessageBox in wxPython that you can use.
How To Create MessageBox in wxPython
Let’s create our example on MessageBox, So this is the complete code for How To Create MessageBox in wxPython
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
import wx class MyFrame(wx.Frame): def __init__(self, parent, title): super(MyFrame, self).__init__(parent, title=title, size=(500, 400)) # Set frame icon self.SetIcon(wx.Icon('codeloop.png', wx.BITMAP_TYPE_PNG)) self.panel = MyPanel(self) class MyPanel(wx.Panel): def __init__(self, parent): super(MyPanel, self).__init__(parent) # Create a button self.button = wx.Button(self, label="Open Message Box", pos=(100, 100)) # Bind button click event to messageBox method self.Bind(wx.EVT_BUTTON, self.messageBox) def messageBox(self, event): # Show a message dialog with an error icon wx.MessageBox('Message Box Dialog Error Icon', 'Dialog', wx.OK | wx.ICON_ERROR) class MyApp(wx.App): def OnInit(self): self.frame = MyFrame(parent=None, title="Codeloop.org - Message Box") self.frame.Show() return True app = MyApp() app.MainLoop() |
This is class is MyFrame class that extends from wx.Frame and it is a top level window that contains our panel.
1 2 3 4 5 6 7 8 9 |
class MyFrame(wx.Frame): def __init__(self, parent, title): super(MyFrame, self).__init__(parent, title =title,size = (500,400)) self.panel = MyPanel(self) |
After that we have created MyPanel class that extends from wx.Panel and it is the place that we create our widgets and layouts in this class. And in this class we have created a button also we have done binding of our def messageBox() method.
1 2 3 4 5 6 |
class MyPanel(wx.Panel): def __init__(self, parent): super(MyPanel, self).__init__(parent) self.button = wx.Button(self, label = "Open Message Box", pos = (100,100)) self.Bind(wx.EVT_BUTTON, self.messageBox) |
And this is the three different MessageBox in wxPython that we have created.
1 2 3 4 |
def messageBox(self, event): #wx.MessageBox('Message Box Dialog Info Icon', 'Dialog', wx.OK | wx.ICON_INFORMATION) #wx.MessageBox('Message Box Dialog Warning Icon', 'Dialog', wx.OK | wx.ICON_WARNING) wx.MessageBox('Message Box Dialog Error Icon', 'Dialog', wx.OK | wx.ICON_ERROR) |
So the last class is MyApp class that extends from wx.App. the OnInit() method is where you will most often create frame subclass objects. and start our main loop.that’s it. Once the application’s main event loop processing takes over, control passes to wxPython. Unlike procedural programs, a wxPython GUI program primarily responds to the events taking place around it, mostly determined by a human user clicking with a mouse and typing at the keyboard. When all the frames in an application have been closed, the app.MainLoop() method will return and the program will exit.
1 2 3 4 5 6 7 8 9 10 |
class MyApp(wx.App): def OnInit(self): self.frame = MyFrame(parent=None, title="Message Box") self.frame.Show() return True app = MyApp() app.MainLoop() |
So run the complete code and this will be the result
Subscribe and Get Free Video Courses & Articles in your Email