wxPython:更改框架 OnButtonPress

wxPython: Change Frame OnButtonPress

我正在尝试在 wxPython 中开发 GUI,但我需要一些帮助。这就是我想要实现的目标。 该应用程序应该有 3 个框架,但要注意的是一次只能看到一个框架。每个框架上都应该有按钮。这些按钮应该作为一种菜单,它们应该 a(隐藏当前可见的框架;b)显示不同的框架。 我知道常见的方法是只使用一个框架和多个面板,但出于某种原因,这种方法对我来说效果不太好。 该应用程序必须完全可供屏幕 reader 用户访问,并且在某些情况下显示和隐藏面板似乎还不够。我自己是 screen reader 用户,在我看来,如果您只显示和隐藏面板,screen reader 并不总是意识到框架的内容已经改变。我猜想一起显示不同的帧可以解决问题。 我将不胜感激一个小的工作示例。我知道一些我应该使用的东西,但尽管如此我还是想不出任何东西。 非常感谢。

您可以只隐藏一个框架并显示另一个框架。像这样:

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()