2017-10-01 11 views
0

wxpython을 사용하는 방법을 배우려하지만 BoxSizer가 올바르게 작동하지 않는 것 같습니다. 나는 잠시 동안 이것을 보았고 어떤 문서를 찾았는지보고 있었지만 내가 잘못하고있는 것을 발견 할 수는 없다.wxpython의 BoxSizer를 사용하는 방법을 알아낼 수 없습니다.

나는 다음과 같은 코드를 실행 할 때마다 팔렛에서 BoxSizer 그냥 전혀 아무것도하지 않는 것처럼

것 같습니다 :

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

: 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

나는이 라인에서 실수가 있다고 생각 라디오 박스의 부모는 self.panel이어야합니다 (self이 아님).

+0

이것이 효과가 있다면 '허용'이라고 표시해주세요. –