wxPython:更改框架OnButtonPress

时间:2016-07-11 17:56:08

标签: python-2.7 wxpython

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

1 个答案:

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