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()
我正在尝试在 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()