Я тренируюсь на wxpython, делая окно со строкой меню и строкой состояния.Я нахожусь на Mac OS, так что, возможно, он работает по-другому, потому что я не знаю, в чем проблема с моим кодом, но я не нашел ничего в Интернете.
Вот мой код:
#!/usr/bin/python
# coding: utf-8
import wx
class Menus(wx.Frame):
def __init__(self, ptitle):
wx.Frame.__init__(self, None, 1, title = ptitle, size = (500, 300))
menuFile = wx.Menu()
menuFile.Append(wx.ID_OPEN, "&Open\tCTRL+o")
menuFile.Append(wx.ID_CLOSE, "&Close\tCTRL+c")
menuFile.AppendSeparator()
menuFile.Append(wx.ID_EXIT, "&Quit\tCTRL+q")
menuBar = wx.MenuBar()
menuBar.Append(menuFile, "&File")
self.SetMenuBar(menuBar)
self.bar = wx.StatusBar(self, 1)
self.bar.SetFieldsCount(2)
self.bar.SetStatusWidths([1,1])
self.SetStatusBar(self.bar)
self.Bind(wx.EVT_MENU, self.OnExit, id=wx.ID_EXIT)
self.Bind(wx.EVT_MENU, self.OnOpen, id=wx.ID_OPEN)
self.Bind(wx.EVT_MENU, self.OnClose, id=wx.ID_CLOSE)
def OnOpen(self, evt):
self.bar.SetStatusText("Choice -> open", 1)
def OnClose(self, evt):
self.bar.SetStatusText("Choice -> close", 1)
def OnExit(self, evt):
self.Destroy()
class App(wx.App):
def OnInit(self):
window = Menus("Window with menu")
window.Show(True)
self.SetTopWindow(window)
return True
app = App()
app.MainLoop()
Когда я нажимаю кнопку Открыть или Закрыть, в строке состояния не появляется текст, но есть строка состояния.Если я выберу вместо установки текста статуса что-то напечатать в терминале, он будет работать нормально.Я также попытался написать self.bar.SetStatusText («Текст»), и он тоже не работает.
Было бы замечательно, если бы кто-то знал, в чем проблема с этой строкой состояния.
Спасибо