我正在尝试在wxPython中开发GUI,但我需要一些帮助。这就是我想要实现的目标。 应用程序应该有3个框架,但问题是一次只能看到一个框架。每个框架上都应该有按钮。这些按钮应该作为一种菜单,它们应该是(隐藏当前可见的帧;和b)显示不同的帧。 我知道常见的方法是只使用一个框架和多个面板,但由于某种原因,这种方法对我来说效果不好。 屏幕阅读器用户必须完全可以访问该应用程序,似乎在某些情况下显示和隐藏面板是不够的。我自己就是一个屏幕阅读器用户,在我看来,如果你只显示和隐藏面板,屏幕阅读器并不总是意识到框架的内容已经改变。我猜测显示不同的帧可以解决问题。 我会感激一点工作的例子。我知道我应该使用的一些东西,但尽管如此,我还是无法想出任何东西。 非常感谢。
答案 0 :(得分:2)
You can just hide a frame and show another one. Like this:
import wx
class Frame(wx.Frame):
def __init__(self, title):
wx.Frame.__init__(self, None, title=title, size=(350,200))
btn = wx.Button(self, label="switch")
btn.Bind(wx.EVT_BUTTON, self._OnButtonClick)
self.Bind(wx.EVT_CLOSE, self.OnClose)
def _OnButtonClick(self, event):
self.frame.Show()
self.Hide()
def OnClose(self, event):
self.frame.Destroy()
self.Destroy()
app = wx.App(redirect=True)
f1 = Frame("Frame1")
f2 = Frame("Frame2")
f1.frame = f2
f2.frame = f1
f1.Show()
app.MainLoop()