【发布时间】:2018-09-26 05:25:57
【问题描述】:
我正在创建一个有多个窗口的应用程序。但是,大多数窗口应该只创建一次。如果窗口 B 已经存在,则应显示现有窗口 B,而不是创建新窗口 B。可能是窗口 B 被创建但随后被销毁,然后,当然,我必须再次创建窗口 B。
问题是我找不到知道窗口 B 是否存在的方法。
在下面的“初始窗口”示例中,您可以根据需要创建任意数量的辅助窗口。我需要一种方法来确保在给定时间只存在一个辅助窗口。
我正在使用 Phython3.7 和 wxPython 4.0.3
import wx
class FrameA(wx.Frame):
def __init__(self, parent, title):
super().__init__(parent, title=title)
self.i = 1
self.panel = wx.Panel(self)
self.sizer = wx.GridBagSizer(1, 1)
self.buttonUtil = wx.Button(self.panel, label='New Window')
self.sizer.Add(self.buttonUtil, pos=(0, 0))
self.panel.SetSizer(self.sizer)
self.buttonUtil.Bind(wx.EVT_BUTTON, self.Util)
self.Centre()
def Util(self, event):
frame = FrameB(None, title=str(self.i))
frame.Show()
self.i += 1
class FrameB(wx.Frame):
def __init__(self, parent, title):
super().__init__(parent, title=title)
app = wx.App()
frameA = FrameA(None, title='Initial Window')
frameA.Show()
app.SetTopWindow(frameA)
app.MainLoop()
【问题讨论】:
标签: python-3.x window wxpython