我需要通过单击按钮在 wxpython 中创建一个额外的新窗口(与主窗口在物理上是分开的)。我想在不关闭最后一个窗口的情况下执行此操作。
这是我到目前为止所拥有的:
class Prototype(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, None, size=(1240,705))
self.UI()
self.Centre()
self.Show()
def UI(self):
self.panel1 = wx.Panel(self, -1)
self.sizer = wx.BoxSizer()
self.sizer.Add(self.panel1, 1, flag=wx.EXPAND)
b = wx.Button(self.panel1, label='second window', size=(180,100), pos=(650,25))
b.Bind(wx.EVT_BUTTON, self.OnB)
self.panel2 = wx.Panel(self, -1)
self.sizer.Add(self.panel2,1,flag=wx.EXPAND)
self.panel2.Hide()
self.panel2.SetSizer(self.vbox)
self.SetSizer(self.sizer)
def OnB(self, event):
self.panel2.Show()
self.sizer.Layout()
app = wx.App()
Prototype(None, title='')
app.MainLoop()
最佳答案
这是一个工作示例:
import wx
########################################################################
class SecondFrame(wx.Frame):
""""""
#----------------------------------------------------------------------
def __init__(self):
"""Constructor"""
wx.Frame.__init__(self, None, title="Second Frame")
panel = wx.Panel(self)
txt = wx.StaticText(panel, label="I'm the second frame!")
########################################################################
class Prototype(wx.Frame):
#----------------------------------------------------------------------
def __init__(self, parent, title):
wx.Frame.__init__(self, None, title="First Frame", size=(1240,705))
self.UI()
self.Centre()
self.Show()
#----------------------------------------------------------------------
def UI(self):
self.panel1 = wx.Panel(self, -1)
self.sizer = wx.BoxSizer()
self.sizer.Add(self.panel1, 1, flag=wx.EXPAND)
b = wx.Button(self.panel1, label='second window', size=(180,100), pos=(650,25))
b.Bind(wx.EVT_BUTTON, self.OnB)
self.SetSizer(self.sizer)
#----------------------------------------------------------------------
def OnB(self, event):
frame = SecondFrame()
frame.Show()
#----------------------------------------------------------------------
app = wx.App(False)
Prototype(None, title='')
app.MainLoop()
不过,我真的不建议混合调整大小和绝对定位。您应该使用其中之一。我建议使用调整器,除非您打算制作无法调整大小的框架。
关于wxpython - 如何通过单击按钮在 wxpython 中创建附加窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15070651/