2017-10-01 18 views
0

我想學習如何使用wxpython,但我似乎無法讓BoxSizer正常工作。我已經有一段時間了,看看我能找到的任何文檔,但我似乎無法找到我做錯了什麼。我想不出如何使用wxpython的BoxSizer

每當我運行下面的代碼,就好像BoxSizer只是沒有做任何事情: https://imgur.com/a/ZRkjA

import wx 

class Main(wx.Frame): 
    def __init__(self, parent): 
     wx.Frame.__init__(self, parent, wx.ID_ANY, title="PictoCrypt", size=(-1,-1)) 

     # Initialize Panel 
     self.panel = wx.Panel(self, wx.ID_ANY) 

     #Encrypt & Decrypt radio buttons 
     radioChoices = ["Encrypt", "Decrypt"] 
     optionsBox = wx.RadioBox(self, id=wx.ID_ANY, choices=radioChoices, style=wx.RA_SPECIFY_COLS) 

     #Path Entry Line 
     pathLabel = wx.StaticText(self.panel, label="File:") 
     pathEntry = wx.TextCtrl(self.panel) 

     #Add Entry Line into Sizers 
     pathSizer = wx.BoxSizer(wx.HORIZONTAL) 
     pathSizer.Add(pathLabel, wx.SizerFlags().Left()) 
     pathSizer.Add(pathEntry, wx.SizerFlags().Right()) 

     #Add everything into main sizer 
     self.topSizer = wx.BoxSizer(wx.VERTICAL) 
     self.panel.SetSizer(self.topSizer) 
     self.topSizer.Add(optionsBox) 
     self.topSizer.Add(pathSizer)  

     self.Show(True) 

app = wx.App(False) 
frame = Main(None) 
app.MainLoop() 

回答

1

我認爲有這行錯誤:

optionsBox = wx.RadioBox(self.panel, id=wx.ID_ANY, choices=radioChoices, style=wx.RA_SPECIFY_COLS) 

RadioBox的父應該是self.panel(不是self)。

+0

如果這對你有用,請將其標記爲'接受'。 –