У меня есть рамка с одним радио-ящиком для переключения полного экрана. Рамка должна перейти в полноэкранный режим, когда пользователь нажимает кнопку «Максимизировать». Однако, если я использую кнопку максимизации, радиокассет не сможет восстановить окно. Если я использую радиоканал для полноэкранного просмотра, он сможет восстановить окно.wx.EVT_MAXIMIZE предотвратили выход из полноэкранного режима
import wx
class FSWindow(wx.Frame):
def __init__(self, *args, **kwargs):
wx.Frame.__init__(self, *args, **kwargs)
self.SetSize((800, 600))
self.RadioFullScreen = wx.RadioBox(self, -1, "Display", choices=["Windowed","Full Screen"])
self.RadioFullScreen.Bind(wx.EVT_RADIOBOX, self.FS)
self.Bind(wx.EVT_MAXIMIZE, self.OnMaximize)
self.Sizer = None
self.Show()
def FS(self, Event):
if self.RadioFullScreen.GetSelection():
self.ShowFullScreen(True)
else:
self.ShowFullScreen(False)
def OnMaximize(self, Event):
self.ShowFullScreen(True) # <-- Add self.Restore() or self.Maximize(False) here
self.RadioFullScreen.SetSelection(1)
App = wx.App()
frame =FSWindow(None, -1, "MainWindow")
App.MainLoop()
Однако, если добавить self.Restore() или self.Maximize (False) перед self.ShowFullScreen (True), как я прокомментировал исходный код выше, кнопки радио будет работать. Проблема в том, что окно будет восстановлено первым, прежде чем переходить в полноэкранный режим, что является уродливым. Любое решение для этого? Также объясните, почему это произошло, если это возможно.
Запуск Python 2.7.9, 3.0.2 WxPython на Window 7 Professional 32-битном