我正在使用wxPython处理GUI。我一直在创建和测试我的所有面板,它们似乎运作良好。为了测试它们,我只是在我的文件末尾抛出这样的东西
class TestFrame(wx.Frame):
"""Test frame"""
def __init__(self, parent):
super(TestFrame, self).__init__(parent, -1, "My Frame",
size=(-1,-1))
# Setup main sizer
self.mainSizer = wx.BoxSizer(wx.VERTICAL)
panel = SomethingCoolPanel(self)
self.mainSizer.Add(panel, 1, wx.EXPAND)
self.mainSizer.SetSizeHints(self)
self.Center()
class App(wx.App):
def OnInit(self):
self.frame = TestFrame(None)
self.frame.Show()
self.SetTopWindow(self.frame)
return True
if __name__ == '__main__':
app = App()
app.MainLoop()
对于我正在做的事情来说,结果很好。我喜欢self.mainSizer.SetSizeHints(self)如何很好地设置窗口并设置合理的最小尺寸。
我可以在分割窗口中设置这样的东西吗?现在我只是手动设置最小窗格大小和起始位置。它目前有效,但必须有更好的方法。此外,设置最小窗格大小适用于拆分器窗口的两侧。也许我希望最小值在左边比在右边少。
答案 0 :(得分:0)
您可以将面板放在分离器内,当然,为什么不呢?唯一的问题是分离器的另一半会有什么,但我想你对此有一些了解。
要设置初始位置,请查询面板的最佳尺寸,并使用其垂直或水平分量(取决于您的分割器方向)来定位窗扇。
最后,要为窗格设置不同的最小尺寸,您需要覆盖wxSplitterWindow::OnSashPositionChanging()
,但我不确定wxPython是否支持这样做。