wxPython에서 라디오 버튼 목록을 만들고 처음에 목록을 배치하면 나중에 해당 목록의 내용을 변경할 수 있습니까?동적 라디오 버튼 생성
예를 들어 boxSizer를 사용하여 위젯을 처음으로 배치하는 패널이 있습니다. 위젯 중 하나는 라디오 버튼 목록입니다 (일반 라디오 박스도 시도했습니다). 다른 클래스의 변수를 기반으로 목록을 동적으로 변경하고 싶습니다.
그러나 일단 목록이 sizer에 배치되면 효과적으로 "잠긴"상태가됩니다. 목록을 수정하고 변경 사항을 표시 할 수는 없습니다. 크기 조정기에 목록을 다시 추가하려고하면 패널 왼쪽 상단에 배치됩니다.
나는 원래 목록을 숨기고 수동으로 같은 위치에 새 목록을 배치 할 수 있지만 kludge와 같은 느낌이 들었습니다. 나는 이것이 이것을 어렵게 만들고 있다고 확신한다. 나는 잘못된 위젯을 사용하고 있는데, 잘못된 접근법은 훨씬 적지 만 이것을 학습 경험으로 구축하고 있습니다.
class Job(wiz.WizardPageSimple):
"""Character's job class."""
def __init__(self, parent, title, attribs):
wiz.WizardPageSimple.__init__(self, parent)
self.next = self.prev = None
self.sizer = makePageTitle(self, title)
self.charAttribs = attribs
#---Create widgets
self.Job_list = ["Aircraft Mechanic", "Vehicle Mechanic", "Electronics Specialist"]
box1_title = wx.StaticBox(self, -1, "")
box1 = wx.StaticBoxSizer(box1_title, wx.VERTICAL)
grid1 = wx.BoxSizer(wx.VERTICAL)
for item in self.Job_list:
radio = wx.RadioButton(self, -1, item)
grid1.Add(radio)
##Debugging
self.btn = wx.Button(self, -1, "click")
self.Bind(wx.EVT_BUTTON, self.eligibleJob, self.btn)
#---Place widgets
self.sizer.Add(self.Job_intro)
self.sizer.Add(self.btn)
box1.Add(grid1)
self.sizer.Add(box1)
def eligibleJob(self, event):
"""Determine which Jobs a character is eligible for."""
if self.charAttribs.intelligence >= 12:
skillList = ["Analyst", "Interrogator", "Fire Specialist", "Aircraft Pilot"]
for skill in skillList:
self.Job_list.append(skill)
print self.Job_list ##Debugging
#return self.Job_list