wxpython关于RadioBox控件

我是Python和wxPython初学者,有几个问题请教下老师。

问题1:程序界面有一组radioBox,选项内容是会随着我的其他控件改变而改变,长短不一。现在的问题是radiobox的框框在程序运行时已经确定,我用过refresh和update都不能自动调整框框的界限,导致有些较长的选项文字显示不全。请问如何动态调整radiobox框框大小?

问题2:radioBox默认会选中第一个,如何设置为没有默认选项?

问题3:radiobox控件(其实其他控件也是)如果用show(False)隐藏后,再show(True)显示,会显示在左上角,而不是一开始设定的位置。控件的布局我是用wx.GridSizer来做的。请问这问题怎么解决?

我是CSDN新手,如有发帖有什么不守规矩的,请多指教。

self.defaultradioList = ['A.', 'B.', 'C.', 'D.']
self.selectionBox = wx.RadioBox(self, pos=(0, 0),choices=self.defaultradioList, majorDimension=1, style=wx.RA_SPECIFY_COLS)
grid.Add(self.selectionBox, pos=(2, 0),span=(4, 2))
self.Bind(wx.EVT_RADIOBOX, self.EvtRadioBox, self.selectionBox)

 

1. wx.RadioBox.SetSize()之后,再refresh或update。如果有布局管理器,可能还需要刷新布局管理器。宽度可以根据选项文本长度、当前字号来确定;

2. wx.RadioBox.SetSelection(n),用于设置当前选中项;

3. 尝试调用布局管理器的父级的Layout()方法。

建议读一下wxPython的文档。