wxpython菜单栏嵌套窗口_如何在wxpython中使嵌套的Panel和Sizer工作
此處的邏輯是創建一個Panel,在其中添加控件,然后創建一個BoxSizer,在其中聲明您在Panel中添加的每個控件在調整大小時的行為,并最終在Panel上設置應用BoxSizer的對象.
您有2期.
>首先,您缺少posPnlobject的上述語句的最后一部分.添加:
posPnl.SetSizer(posPnlSzr)
將控件添加到posPnlSzr之后
>第二個問題是您要在mainSzr中添加posSnlSzr.這樣做是錯誤的.同樣,邏輯是將控件添加到大小調整器,您可以將Panel視為復合控件.因此,正確的代碼是將posPnl添加到mainSzr中:
mainSzr.Add(posPnl)
據我所知,您正在嘗試使posPnl在主窗口中自動調整大小.如果添加面板以使mainSzr實際調整其大小:
mainSzr.Add(posPnl, 1, wx.GROW)
這給出了最終的源代碼:
#!/usr/bin/env python
import wx
class MainWindow(wx.Frame):
def __init__(self, parent, title):
wx.Frame.__init__(self, parent)
#add position panel
posPnl = wx.Panel(self)
lbl1 = wx.StaticText(posPnl, label="Position")
lbl2 = wx.StaticText(posPnl, label="Size")
sizeCtrl = wx.TextCtrl(posPnl)
posPnlSzr = wx.BoxSizer(wx.HORIZONTAL)
posPnlSzr.Add(lbl1, 1, wx.GROW)
posPnlSzr.Add(sizeCtrl, 1, wx.GROW)
posPnlSzr.Add(lbl2, 1, wx.GROW)
posPnl.SetSizer(posPnlSzr)
#create a top leverl sizer to add to the frame itself
mainSzr = wx.BoxSizer(wx.VERTICAL)
mainSzr.Add(posPnl, 1, wx.GROW)
self.SetSizerAndFit(mainSzr)
self.Show()
app = wx.App(False)
frame = MainWindow(None, "Trading Client")
app.MainLoop()
總結
以上是生活随笔為你收集整理的wxpython菜单栏嵌套窗口_如何在wxpython中使嵌套的Panel和Sizer工作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: atom配置python环境_pytho
- 下一篇: 天天基金定期宝和活期宝有什么区别?表现在