此代码(感谢Mike Driscoll)创建了一个包含168个复选框的网格,每个小时每天一个。在检索他们的价值时我很困惑...... 我想得到一个像{mon1:yes}等字典。 任何帮助表示赞赏...
import wx
class MainPanel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
main_sizer = wx.BoxSizer(wx.VERTICAL)
for row in range(7):
row_sizer = wx.BoxSizer(wx.HORIZONTAL)
for col in range(24):
name_of_checkbox = "row_{row}_col_{col}".format(row=row, col=col)
checkbox = wx.CheckBox(self, name=name_of_checkbox)
row_sizer.Add(checkbox, 0, wx.ALL, 5)
main_sizer.Add(row_sizer)
self.SetSizer(main_sizer)
class MainFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title='Hours and days', size=(650, 400))
panel = MainPanel(self)
self.Show()
if __name__ == '__main__':
app = wx.App()
frame = MainFrame()
app.MainLoop()
答案 0 :(得分:0)
创建复选框时需要绑定事件。然后使用getValue()函数获取复选框状态。
import wx
class MainPanel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
main_sizer = wx.BoxSizer(wx.VERTICAL)
for row in range(7):
row_sizer = wx.BoxSizer(wx.HORIZONTAL)
for col in range(24):
name_of_checkbox = "row_{row}_col_{col}".format(row=row, col=col)
checkbox = wx.CheckBox(self, name=name_of_checkbox)
#self.Bind(wx.EVT_CHECKBOX, self.onChecked)
row_sizer.Add(checkbox, 0, wx.ALL, 5)
main_sizer.Add(row_sizer)
self.SetSizer(main_sizer)
#def onChecked(self, e):
#cb = e.GetEventObject()
#print (cb.GetName(), ' is clicked', cb.GetValue())
class MainFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title='Hours and days', size=(900, 400))
panel = MainPanel(self)
self.Bind(wx.EVT_CHECKBOX, self.OnButtonClicked)
self.Show()
self.user_dict = dict()
self.initDict()
def OnButtonClicked(self, e):
cb = e.GetEventObject()
print (cb.GetName(), ' is clicked', cb.GetValue())
self.user_dict[cb.GetName()] = cb.GetValue()
print(self.user_dict)
def initDict(self):
for row in range(7):
for col in range(24):
name_of_checkbox = "row_{row}_col_{col}".format(row=row, col=col)
self.user_dict[name_of_checkbox] = False
if __name__ == '__main__':
app = wx.App()
frame = MainFrame()
app.MainLoop()
输出可能是这样的:
(u'row_4_col_7', ' is clicked', True)
{'row_0_col_0': False, 'row_0_col_1': False, 'row_0_col_2': False, 'row_0_col_3': False, 'row_0_col_4': False, 'row_0_col_5': False, 'row_0_col_6': False, 'row_0_col_7': False, 'row_0_col_8': False, 'row_0_col_9': False, 'row_4_col_13': False, 'row_1_col_15': False, 'row_1_col_14': False, 'row_1_col_17': False, 'row_1_col_16': False, 'row_1_col_11': False, 'row_1_col_10': False, 'row_1_col_13': False, 'row_1_col_12': False, 'row_1_col_19': False, 'row_1_col_18': False, 'row_6_col_10': False, 'row_6_col_11': False, 'row_6_col_12': False, 'row_1_col_0': False, 'row_6_col_13': False, 'row_1_col_3': False, 'row_1_col_9': False, 'row_1_col_8': False, 'row_2_col_21': False, 'row_2_col_20': False, 'row_2_col_23': False, 'row_2_col_22': False, 'row_1_col_5': False, 'row_1_col_4': False, 'row_1_col_7': False, 'row_1_col_6': False, 'row_6_col_21': False, 'row_6_col_20': False, 'row_6_col_4': False, 'row_3_col_19': False, 'row_3_col_18': False, 'row_6_col_23': False, 'row_3_col_13': False, 'row_3_col_12': False, 'row_3_col_11': False, 'row_3_col_10': False, 'row_3_col_17': False, 'row_3_col_16': False, 'row_3_col_15': False, 'row_3_col_14': False, 'row_6_col_5': False, 'row_6_col_14': False, 'row_6_col_15': False, 'row_6_col_16': False, 'row_6_col_17': False, 'row_0_col_23': False, 'row_0_col_22': False, 'row_0_col_21': False, 'row_0_col_20': False, 'row_6_col_18': False, 'row_6_col_19': False, 'row_5_col_20': False, 'row_5_col_21': False, 'row_5_col_22': False, 'row_5_col_23': False, 'row_4_col_23': False, 'row_4_col_22': False, 'row_4_col_21': False, 'row_4_col_20': False, 'row_6_col_2': False, 'row_1_col_1': False, 'row_6_col_0': False, 'row_6_col_1': False, 'row_3_col_22': False, 'row_3_col_23': False, 'row_2_col_8': False, 'row_2_col_9': False, 'row_2_col_6': False, 'row_2_col_7': False, 'row_2_col_4': False, 'row_2_col_5': False, 'row_2_col_2': False, 'row_2_col_3': False, 'row_2_col_0': False, 'row_2_col_1': False, 'row_1_col_2': False, 'row_6_col_3': False, 'row_0_col_12': False, 'row_0_col_13': False, 'row_0_col_10': False, 'row_0_col_11': False, 'row_0_col_16': False, 'row_0_col_17': False, 'row_0_col_14': False, 'row_0_col_15': False, 'row_6_col_6': False, 'row_0_col_18': False, 'row_0_col_19': False, 'row_6_col_7': False, 'row_4_col_16': False, 'row_4_col_17': False, 'row_4_col_14': False, 'row_4_col_15': False, 'row_4_col_12': False, 'row_3_col_20': False, 'row_4_col_10': False, 'row_4_col_11': False, 'row_3_col_21': False, 'row_4_col_18': False, 'row_4_col_19': False, 'row_6_col_8': False, 'row_6_col_9': False, 'row_4_col_4': False, 'row_4_col_5': False, 'row_4_col_6': False, 'row_4_col_7': True, 'row_4_col_0': False, 'row_4_col_1': False, 'row_4_col_2': False, 'row_4_col_3': False, 'row_4_col_8': False, 'row_4_col_9': False, 'row_2_col_10': False, 'row_2_col_11': False, 'row_2_col_12': False, 'row_2_col_13': False, 'row_2_col_14': False, 'row_2_col_15': False, 'row_2_col_16': False, 'row_2_col_17': False, 'row_2_col_18': False, 'row_2_col_19': False, 'row_6_col_22': False, 'row_5_col_9': False, 'row_5_col_8': False, 'row_5_col_5': False, 'row_5_col_4': False, 'row_5_col_7': False, 'row_5_col_6': False, 'row_5_col_1': False, 'row_5_col_0': False, 'row_5_col_3': False, 'row_5_col_2': False, 'row_1_col_20': False, 'row_1_col_21': False, 'row_1_col_22': False, 'row_1_col_23': False, 'row_3_col_7': False, 'row_3_col_6': False, 'row_3_col_5': False, 'row_3_col_4': False, 'row_3_col_3': False, 'row_3_col_2': False, 'row_3_col_1': False, 'row_3_col_0': False, 'row_3_col_9': False, 'row_3_col_8': False, 'row_5_col_19': False, 'row_5_col_18': False, 'row_5_col_11': False, 'row_5_col_10': False, 'row_5_col_13': False, 'row_5_col_12': False, 'row_5_col_15': False, 'row_5_col_14': False, 'row_5_col_17': False, 'row_5_col_16': False}
(u'row_0_col_0', ' is clicked', True)
{'row_0_col_0': True, 'row_0_col_1': False, 'row_0_col_2': False, 'row_0_col_3': False, 'row_0_col_4': False, 'row_0_col_5': False, 'row_0_col_6': False, 'row_0_col_7': False, 'row_0_col_8': False, 'row_0_col_9': False, 'row_4_col_13': False, 'row_1_col_15': False, 'row_1_col_14': False, 'row_1_col_17': False, 'row_1_col_16': False, 'row_1_col_11': False, 'row_1_col_10': False, 'row_1_col_13': False, 'row_1_col_12': False, 'row_1_col_19': False, 'row_1_col_18': False, 'row_6_col_10': False, 'row_6_col_11': False, 'row_6_col_12': False, 'row_1_col_0': False, 'row_6_col_13': False, 'row_1_col_3': False, 'row_1_col_9': False, 'row_1_col_8': False, 'row_2_col_21': False, 'row_2_col_20': False, 'row_2_col_23': False, 'row_2_col_22': False, 'row_1_col_5': False, 'row_1_col_4': False, 'row_1_col_7': False, 'row_1_col_6': False, 'row_6_col_21': False, 'row_6_col_20': False, 'row_6_col_4': False, 'row_3_col_19': False, 'row_3_col_18': False, 'row_6_col_23': False, 'row_3_col_13': False, 'row_3_col_12': False, 'row_3_col_11': False, 'row_3_col_10': False, 'row_3_col_17': False, 'row_3_col_16': False, 'row_3_col_15': False, 'row_3_col_14': False, 'row_6_col_5': False, 'row_6_col_14': False, 'row_6_col_15': False, 'row_6_col_16': False, 'row_6_col_17': False, 'row_0_col_23': False, 'row_0_col_22': False, 'row_0_col_21': False, 'row_0_col_20': False, 'row_6_col_18': False, 'row_6_col_19': False, 'row_5_col_20': False, 'row_5_col_21': False, 'row_5_col_22': False, 'row_5_col_23': False, 'row_4_col_23': False, 'row_4_col_22': False, 'row_4_col_21': False, 'row_4_col_20': False, 'row_6_col_2': False, 'row_1_col_1': False, 'row_6_col_0': False, 'row_6_col_1': False, 'row_3_col_22': False, 'row_3_col_23': False, 'row_2_col_8': False, 'row_2_col_9': False, 'row_2_col_6': False, 'row_2_col_7': False, 'row_2_col_4': False, 'row_2_col_5': False, 'row_2_col_2': False, 'row_2_col_3': False, 'row_2_col_0': False, 'row_2_col_1': False, 'row_1_col_2': False, 'row_6_col_3': False, 'row_0_col_12': False, 'row_0_col_13': False, 'row_0_col_10': False, 'row_0_col_11': False, 'row_0_col_16': False, 'row_0_col_17': False, 'row_0_col_14': False, 'row_0_col_15': False, 'row_6_col_6': False, 'row_0_col_18': False, 'row_0_col_19': False, 'row_6_col_7': False, 'row_4_col_16': False, 'row_4_col_17': False, 'row_4_col_14': False, 'row_4_col_15': False, 'row_4_col_12': False, 'row_3_col_20': False, 'row_4_col_10': False, 'row_4_col_11': False, 'row_3_col_21': False, 'row_4_col_18': False, 'row_4_col_19': False, 'row_6_col_8': False, 'row_6_col_9': False, 'row_4_col_4': False, 'row_4_col_5': False, 'row_4_col_6': False, 'row_4_col_7': True, 'row_4_col_0': False, 'row_4_col_1': False, 'row_4_col_2': False, 'row_4_col_3': False, 'row_4_col_8': False, 'row_4_col_9': False, 'row_2_col_10': False, 'row_2_col_11': False, 'row_2_col_12': False, 'row_2_col_13': False, 'row_2_col_14': False, 'row_2_col_15': False, 'row_2_col_16': False, 'row_2_col_17': False, 'row_2_col_18': False, 'row_2_col_19': False, 'row_6_col_22': False, 'row_5_col_9': False, 'row_5_col_8': False, 'row_5_col_5': False, 'row_5_col_4': False, 'row_5_col_7': False, 'row_5_col_6': False, 'row_5_col_1': False, 'row_5_col_0': False, 'row_5_col_3': False, 'row_5_col_2': False, 'row_1_col_20': False, 'row_1_col_21': False, 'row_1_col_22': False, 'row_1_col_23': False, 'row_3_col_7': False, 'row_3_col_6': False, 'row_3_col_5': False, 'row_3_col_4': False, 'row_3_col_3': False, 'row_3_col_2': False, 'row_3_col_1': False, 'row_3_col_0': False, 'row_3_col_9': False, 'row_3_col_8': False, 'row_5_col_19': False, 'row_5_col_18': False, 'row_5_col_11': False, 'row_5_col_10': False, 'row_5_col_13': False, 'row_5_col_12': False, 'row_5_col_15': False, 'row_5_col_14': False, 'row_5_col_17': False, 'row_5_col_16': False}
(u'row_0_col_1', ' is clicked', True)
{'row_0_col_0': True, 'row_0_col_1': True, 'row_0_col_2': False, 'row_0_col_3': False, 'row_0_col_4': False, 'row_0_col_5': False, 'row_0_col_6': False, 'row_0_col_7': False, 'row_0_col_8': False, 'row_0_col_9': False, 'row_4_col_13': False, 'row_1_col_15': False, 'row_1_col_14': False, 'row_1_col_17': False, 'row_1_col_16': False, 'row_1_col_11': False, 'row_1_col_10': False, 'row_1_col_13': False, 'row_1_col_12': False, 'row_1_col_19': False, 'row_1_col_18': False, 'row_6_col_10': False, 'row_6_col_11': False, 'row_6_col_12': False, 'row_1_col_0': False, 'row_6_col_13': False, 'row_1_col_3': False, 'row_1_col_9': False, 'row_1_col_8': False, 'row_2_col_21': False, 'row_2_col_20': False, 'row_2_col_23': False, 'row_2_col_22': False, 'row_1_col_5': False, 'row_1_col_4': False, 'row_1_col_7': False, 'row_1_col_6': False, 'row_6_col_21': False, 'row_6_col_20': False, 'row_6_col_4': False, 'row_3_col_19': False, 'row_3_col_18': False, 'row_6_col_23': False, 'row_3_col_13': False, 'row_3_col_12': False, 'row_3_col_11': False, 'row_3_col_10': False, 'row_3_col_17': False, 'row_3_col_16': False, 'row_3_col_15': False, 'row_3_col_14': False, 'row_6_col_5': False, 'row_6_col_14': False, 'row_6_col_15': False, 'row_6_col_16': False, 'row_6_col_17': False, 'row_0_col_23': False, 'row_0_col_22': False, 'row_0_col_21': False, 'row_0_col_20': False, 'row_6_col_18': False, 'row_6_col_19': False, 'row_5_col_20': False, 'row_5_col_21': False, 'row_5_col_22': False, 'row_5_col_23': False, 'row_4_col_23': False, 'row_4_col_22': False, 'row_4_col_21': False, 'row_4_col_20': False, 'row_6_col_2': False, 'row_1_col_1': False, 'row_6_col_0': False, 'row_6_col_1': False, 'row_3_col_22': False, 'row_3_col_23': False, 'row_2_col_8': False, 'row_2_col_9': False, 'row_2_col_6': False, 'row_2_col_7': False, 'row_2_col_4': False, 'row_2_col_5': False, 'row_2_col_2': False, 'row_2_col_3': False, 'row_2_col_0': False, 'row_2_col_1': False, 'row_1_col_2': False, 'row_6_col_3': False, 'row_0_col_12': False, 'row_0_col_13': False, 'row_0_col_10': False, 'row_0_col_11': False, 'row_0_col_16': False, 'row_0_col_17': False, 'row_0_col_14': False, 'row_0_col_15': False, 'row_6_col_6': False, 'row_0_col_18': False, 'row_0_col_19': False, 'row_6_col_7': False, 'row_4_col_16': False, 'row_4_col_17': False, 'row_4_col_14': False, 'row_4_col_15': False, 'row_4_col_12': False, 'row_3_col_20': False, 'row_4_col_10': False, 'row_4_col_11': False, 'row_3_col_21': False, 'row_4_col_18': False, 'row_4_col_19': False, 'row_6_col_8': False, 'row_6_col_9': False, 'row_4_col_4': False, 'row_4_col_5': False, 'row_4_col_6': False, 'row_4_col_7': True, 'row_4_col_0': False, 'row_4_col_1': False, 'row_4_col_2': False, 'row_4_col_3': False, 'row_4_col_8': False, 'row_4_col_9': False, 'row_2_col_10': False, 'row_2_col_11': False, 'row_2_col_12': False, 'row_2_col_13': False, 'row_2_col_14': False, 'row_2_col_15': False, 'row_2_col_16': False, 'row_2_col_17': False, 'row_2_col_18': False, 'row_2_col_19': False, 'row_6_col_22': False, 'row_5_col_9': False, 'row_5_col_8': False, 'row_5_col_5': False, 'row_5_col_4': False, 'row_5_col_7': False, 'row_5_col_6': False, 'row_5_col_1': False, 'row_5_col_0': False, 'row_5_col_3': False, 'row_5_col_2': False, 'row_1_col_20': False, 'row_1_col_21': False, 'row_1_col_22': False, 'row_1_col_23': False, 'row_3_col_7': False, 'row_3_col_6': False, 'row_3_col_5': False, 'row_3_col_4': False, 'row_3_col_3': False, 'row_3_col_2': False, 'row_3_col_1': False, 'row_3_col_0': False, 'row_3_col_9': False, 'row_3_col_8': False, 'row_5_col_19': False, 'row_5_col_18': False, 'row_5_col_11': False, 'row_5_col_10': False, 'row_5_col_13': False, 'row_5_col_12': False, 'row_5_col_15': False, 'row_5_col_14': False, 'row_5_col_17': False, 'row_5_col_16': False}
(u'row_0_col_2', ' is clicked', True)
{'row_0_col_0': True, 'row_0_col_1': True, 'row_0_col_2': True, 'row_0_col_3': False, 'row_0_col_4': False, 'row_0_col_5': False, 'row_0_col_6': False, 'row_0_col_7': False, 'row_0_col_8': False, 'row_0_col_9': False, 'row_4_col_13': False, 'row_1_col_15': False, 'row_1_col_14': False, 'row_1_col_17': False, 'row_1_col_16': False, 'row_1_col_11': False, 'row_1_col_10': False, 'row_1_col_13': False, 'row_1_col_12': False, 'row_1_col_19': False, 'row_1_col_18': False, 'row_6_col_10': False, 'row_6_col_11': False, 'row_6_col_12': False, 'row_1_col_0': False, 'row_6_col_13': False, 'row_1_col_3': False, 'row_1_col_9': False, 'row_1_col_8': False, 'row_2_col_21': False, 'row_2_col_20': False, 'row_2_col_23': False, 'row_2_col_22': False, 'row_1_col_5': False, 'row_1_col_4': False, 'row_1_col_7': False, 'row_1_col_6': False, 'row_6_col_21': False, 'row_6_col_20': False, 'row_6_col_4': False, 'row_3_col_19': False, 'row_3_col_18': False, 'row_6_col_23': False, 'row_3_col_13': False, 'row_3_col_12': False, 'row_3_col_11': False, 'row_3_col_10': False, 'row_3_col_17': False, 'row_3_col_16': False, 'row_3_col_15': False, 'row_3_col_14': False, 'row_6_col_5': False, 'row_6_col_14': False, 'row_6_col_15': False, 'row_6_col_16': False, 'row_6_col_17': False, 'row_0_col_23': False, 'row_0_col_22': False, 'row_0_col_21': False, 'row_0_col_20': False, 'row_6_col_18': False, 'row_6_col_19': False, 'row_5_col_20': False, 'row_5_col_21': False, 'row_5_col_22': False, 'row_5_col_23': False, 'row_4_col_23': False, 'row_4_col_22': False, 'row_4_col_21': False, 'row_4_col_20': False, 'row_6_col_2': False, 'row_1_col_1': False, 'row_6_col_0': False, 'row_6_col_1': False, 'row_3_col_22': False, 'row_3_col_23': False, 'row_2_col_8': False, 'row_2_col_9': False, 'row_2_col_6': False, 'row_2_col_7': False, 'row_2_col_4': False, 'row_2_col_5': False, 'row_2_col_2': False, 'row_2_col_3': False, 'row_2_col_0': False, 'row_2_col_1': False, 'row_1_col_2': False, 'row_6_col_3': False, 'row_0_col_12': False, 'row_0_col_13': False, 'row_0_col_10': False, 'row_0_col_11': False, 'row_0_col_16': False, 'row_0_col_17': False, 'row_0_col_14': False, 'row_0_col_15': False, 'row_6_col_6': False, 'row_0_col_18': False, 'row_0_col_19': False, 'row_6_col_7': False, 'row_4_col_16': False, 'row_4_col_17': False, 'row_4_col_14': False, 'row_4_col_15': False, 'row_4_col_12': False, 'row_3_col_20': False, 'row_4_col_10': False, 'row_4_col_11': False, 'row_3_col_21': False, 'row_4_col_18': False, 'row_4_col_19': False, 'row_6_col_8': False, 'row_6_col_9': False, 'row_4_col_4': False, 'row_4_col_5': False, 'row_4_col_6': False, 'row_4_col_7': True, 'row_4_col_0': False, 'row_4_col_1': False, 'row_4_col_2': False, 'row_4_col_3': False, 'row_4_col_8': False, 'row_4_col_9': False, 'row_2_col_10': False, 'row_2_col_11': False, 'row_2_col_12': False, 'row_2_col_13': False, 'row_2_col_14': False, 'row_2_col_15': False, 'row_2_col_16': False, 'row_2_col_17': False, 'row_2_col_18': False, 'row_2_col_19': False, 'row_6_col_22': False, 'row_5_col_9': False, 'row_5_col_8': False, 'row_5_col_5': False, 'row_5_col_4': False, 'row_5_col_7': False, 'row_5_col_6': False, 'row_5_col_1': False, 'row_5_col_0': False, 'row_5_col_3': False, 'row_5_col_2': False, 'row_1_col_20': False, 'row_1_col_21': False, 'row_1_col_22': False, 'row_1_col_23': False, 'row_3_col_7': False, 'row_3_col_6': False, 'row_3_col_5': False, 'row_3_col_4': False, 'row_3_col_3': False, 'row_3_col_2': False, 'row_3_col_1': False, 'row_3_col_0': False, 'row_3_col_9': False, 'row_3_col_8': False, 'row_5_col_19': False, 'row_5_col_18': False, 'row_5_col_11': False, 'row_5_col_10': False, 'row_5_col_13': False, 'row_5_col_12': False, 'row_5_col_15': False, 'row_5_col_14': False, 'row_5_col_17': False, 'row_5_col_16': False}
答案 1 :(得分:0)
您可以创建一个结构来保存复选框ID,并添加一个按钮以一次检索所有数据。这样可以轻松访问哪些盒子已经过检查,哪些盒子没有。这样您就可以检索任何您喜欢的结构中的数据,例如:
import wx
class MainPanel(wx.Panel):
def __init__(self, parent):
wx.Panel.__init__(self, parent)
main_sizer = wx.BoxSizer(wx.VERTICAL)
days=['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']
self.boxes=[]
for row in range(7):
row_sizer = wx.BoxSizer(wx.HORIZONTAL)
day = days[row]
for col in range(24):
name_of_checkbox = "{day}_{hour}".format(day=day, hour=col)
self.checkbox = wx.CheckBox(self, name=name_of_checkbox)
row_sizer.Add(self.checkbox, 0, wx.ALL, 5)
self.boxes.append(self.checkbox)
main_sizer.Add(row_sizer)
button = wx.Button(self,-1,"Retrieve Data")
main_sizer.Add(button)
self.Bind(wx.EVT_CHECKBOX, self.OnChecked)
self.Bind(wx.EVT_BUTTON, self.OnGetData)
self.SetSizer(main_sizer)
def OnChecked(self,event):
clicked = event.GetEventObject()
print clicked.GetName()
print event.IsChecked()
def OnGetData(self,event):
day_dict = {}
day_list = []
for i in self.boxes:
if i.IsChecked():
n = i.GetName()
day_dict[n]="Checked"
day_list.append((n,"Checked"))
print day_dict
print day_list
class MainFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, title='Hours and days', size=(850, 400))
panel = MainPanel(self)
self.Show()
if __name__ == '__main__':
app = wx.App()
frame = MainFrame()
app.MainLoop()