[英]Combo box index value returning to default 0 when clicked radio buttons or change spin boxes in PyQt
[英]Index radio box and contained buttons
我有多个包含三个按钮的单选框,如下所示。 我想跟踪单选框中单击的单选按钮,然后进行一些处理。 我不确定如何索引单选框,然后单击该单选框内的单选按钮,因为有多个框。 有什么建议么?
class MyFrame(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, "test", wx.DefaultPosition, wx.Size(900, 600))
radio1Choices = ['F','G','P']
# rb_list has 23 records -- basically used to set the distance b/w radio boxes
for i in rb_list:
self.radio1 = wx.RadioBox(scroll1, wx.ID_ANY, wx.EmptyString, (550,i), (20,5), radio1Choices, 3, wx.RA_SPECIFY_COLS | wx.NO_BORDER)
self.radio1.SetSelection( 0 )
grid_sizer.Add( self.radio1, 0, wx.ALL, 5)
# Bind the radio box select event to a function
self.radio1.Bind( wx.EVT_RADIOBOX, self.on_selected )
def on_selected(self, event):
if self.radio1.GetStringSelection() == 'F':
print "F"
elif self.radio1.GetStringSelection() == 'G':
print "G"
else:
self.radio1.GetStringSelection() == 'P'
print "P"
将每个单选框附加到列表中,则只有您可以将每个单选框与其事件绑定
试试这个代码:
self.radiobuttonlist=[]
for i in range(0,len(lut_code)):
rb += 40
self.radiobuttonlist.append(wx.RadioBox(scroll1, wx.ID_ANY, wx.EmptyString, (550,rb), (30,5), radio1Choices, 3, wx.RA_SPECIFY_COLS | wx.NO_BORDER))
self.radiobuttonlist[-1].SetSelection(0)
print self.radiobuttonlist[-1].GetId()
self.Bind(wx.EVT_RADIOBOX,self.Getvalues,id=self.radiobuttonlist[-1].GetId())
grid_sizer.Add(self.radiobuttonlist[-1], 0, wx.ALL, 5)
要获取选定的单选按钮值,请使用:
event.GetEventObject()。GetSelection()
试试这个代码:
def Getvalues(self,event):
print event.GetEventObject().GetSelection()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.