Why I have not seen any underline with the menu items although I have put "&" within the menu names. My code is as follows:
import wx
import os
class MainWindow(wx.Frame):
def __init__(self, parent):
self.dirname=''
# A "-1" in the size parameter instructs wxWidgets to use the default size.
# In this case, we select 200px width and the default height.
wx.Frame.__init__(self, parent, size=(200,-1))
self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE)
self.CreateStatusBar() # A Statusbar in the bottom of the window
# Setting up the menu.
filemenu= wx.Menu()
menuOpen = filemenu.Append(wx.ID_OPEN, "&Opent\tCrtl+O"," Open a file to edit")
menuAbout= filemenu.Append(wx.ID_ABOUT, "&About\tCrtl+A"," Information about this program")
menuExit = filemenu.Append(wx.ID_EXIT,"E&xit\tAlt+F4"," Terminate the program")
# Creating the menubar.
menuBar = wx.MenuBar()
menuBar.Append(filemenu,"File") # Adding the "filemenu" to the MenuBar
self.SetMenuBar(menuBar) # Adding the MenuBar to the Frame content.
# Events.
self.Bind(wx.EVT_MENU, self.OnOpen, menuOpen)
self.Bind(wx.EVT_MENU, self.OnAbout, menuAbout)
self.Bind(wx.EVT_MENU, self.OnExit, menuExit)
# Accelerate Table
op_id = wx.NewId()
ab_id = wx.NewId()
self.Bind(wx.EVT_MENU, self.OnOpen, id=op_id)
self.Bind(wx.EVT_MENU, self.OnAbout, id=ab_id)
self.accel_tbl = wx.AcceleratorTable([(wx.ACCEL_CTRL, ord('O'), op_id),
(wx.ACCEL_CTRL, ord('A'), ab_id)])
self.SetAcceleratorTable(self.accel_tbl)
# To close window
self.Bind(wx.EVT_CLOSE, self.OnExit, menuExit)
self.sizer2 = wx.BoxSizer(wx.HORIZONTAL)
self.buttons = []
for i in range(0, 6):
self.buttons.append(wx.Button(self, -1, "Button &"+str(i)))
self.sizer2.Add(self.buttons[i], 1, wx.EXPAND)
## Use some sizers to see layout options
self.sizer = wx.BoxSizer(wx.VERTICAL)
self.sizer.Add(self.control, 1, wx.EXPAND)
self.sizer.Add(self.sizer2, 0, wx.EXPAND)
##Layout sizers
self.SetSizer(self.sizer)
self.SetAutoLayout(1)
self.sizer.Fit(self)
self.Show()
def OnAbout(self,e):
# Create a message dialog box
dlg = wx.MessageDialog(self, " Wahid \n in wxPython", "About Sample Editor", wx.OK)
dlg.ShowModal() # Shows it
dlg.Destroy() # finally destroy it when finished.
def OnExit(self,e):
self.Close(True) # Close the frame.
def OnOpen(self,e):
"""Open a file"""
dlg = wx.FileDialog(self, "Choose a file", self.dirname, "", "*.*", wx.OPEN)
if dlg.ShowModal() == wx.ID_OK:
self.filename = dlg.GetFilename()
self.dirname = dlg.GetDirectory()
f = open(os.path.join(self.dirname, self.filename), 'r')
self.control.SetValue(f.read())
f.close()
dlg.Destroy()
app = wx.App(False)
frame = MainWindow(None)
app.MainLoop()
My output sample is in attachment. I will appreciate if some one can give me solution.
Thanks in advance.
-- Akand