我在 wxpython 中使用 objectlistview,直到现在我都非常满意。我找不到将事件添加到我的 objectlistview 中的复选框的方法。目前我有一个解决方法,用户必须单击一个按钮,然后选中的行会发生一些事情。但是我想在用户选中复选框时实现它。它必须在我的情节中切换图表。
我的第二个问题是如何在用户单击按钮后取消选中复选框(如果没有办法解决我的第一个问题)。
我的代码(我只是复制了必要的行,因为我的程序很大)
self.tempmeasurements = ObjectListView(self, wx.ID_ANY, style=wx.LC_REPORT | wx.SUNKEN_BORDER)
self.tempmeasurements.SetColumns(microanalysis_options.TempMeasColumndefs)
self.tempmeasurements.CreateCheckStateColumn(0)
self.addbutton = wx.Button(self, wx.ID_ANY, "Add to plot")
self.rembutton = wx.Button(self, wx.ID_ANY,'Remove from plot')
self.Bind(wx.EVT_BUTTON, self.on_toggle_plotlist, self.addbutton)
self.Bind(wx.EVT_BUTTON, self.on_remove_from_plot,self.rembutton)
def on_toggle_plotlist(self, event):
objectsAddPlotList = self.tempmeasurements.GetCheckedObjects()
pub.sendMessage('MA_ADD_TO_PLOT', Container(origin=self, data=objectsAddPlotList)) #to microanalyse controller
self.tempmeasurements.SetCheckState(objectsAddPlotList,False)
def on_remove_from_plot(self,event):
objectsAddPlotList = self.tempmeasurements.GetCheckedObjects()
pub.sendMessage('MA_REM_FROM_PLOT', Container(origin=self, data=objectsAddPlotList)) # to microanalyse controller
在用户单击按钮后,我尝试使用 self.tempmeasurements.SetCheckState(objectsAddPlotList,False) 行取消选中复选框。
这是列表的样子: