2015-05-05 15 views
0

在複選框上單擊事件集標籤作爲一些文本。如果我們點擊文本複選框,它應該將名爲abt_Metric的標籤設置爲文本聚集。在複選框中設置標籤值在wxPython中單擊事件

boxsizer = wx.StaticBoxSizer(sb, wx.VERTICAL) 
#adding checkBox 
c1 = wx.CheckBox(panel, label="Text") 
#c1.SetValue(True) 



#abt_Metric= wx.StaticText(panel, label='') 
#boxsizer.Add(abt_Metric, flag=wx.LEFT|wx.TOP,border=10) 
#result.GetValue() 
url_entered.SetForegroundColour(wx.BLUE) 


c2 = wx.CheckBox(panel, label="HTML ") 
#c2.SetValue(True) 
c3 = wx.CheckBox(panel, label="NLP") 
#c3.SetValue(True) 



boxsizer.Add(c1,flag=wx.LEFT|wx.TOP, border=5) 
boxsizer.Add(c2,flag=wx.LEFT, border=5) 
boxsizer.Add(c3,flag=wx.LEFT|wx.BOTTOM, border=5) 
sizer.Add(boxsizer, pos=(6, 0), span=(1, 5),flag=wx.EXPAND|wx.TOP|wx.LEFT|wx.RIGHT , border=10) 


abt_Metric= wx.StaticText(panel, label='') 

sizer.Add(abt_Metric, pos=(7, 0), flag=wx.LEFT|wx.TOP,border=10) 

複選框事件處理程序

c1.Bind(wx.EVT_CHECKBOX, self.OntextMetric(c1),c1) 
c2.Bind(wx.EVT_CHECKBOX, self.OntextMetric(c2),c2) 
c3.Bind(wx.EVT_CHECKBOX, self.OntextMetric(c3),c3) 

實施def OntextMetric(self,e,c)

if c.GetValue() == True: 

    self.panel.abt_Metric.SetLabel(" Text collected") 
elif c.GetValue() == True: 
    self.panel.abt_Metric.SetLabel("HTML collected") 
elif c.GetValue() == True: 
    self.panel.abt_Metric.SetLabel("NLP Collected") 
else: 
    self.panel.abt_Metric.SetLabel("") 
+0

你從來沒有真正問一個問題。 –

+0

關於複選框單擊事件我想將文本設置爲標籤。 –

回答

0

蔭的不能夠清楚地明白你的問題,但是這就是你正在尋找?

import wx 
import matplotlib 
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas 
from matplotlib.figure import Figure 

class MainFrame(wx.Frame): 
    def __init__(self): 
     wx.Frame.__init__(self, None, wx.NewId(), "Main") 
     panel = wx.Panel(self,1) 
     #sizer = wx.BoxSizer(wx.HORIZONTAL) 
     boxsizer = wx.BoxSizer(wx.VERTICAL) 
     c1 = wx.CheckBox(panel, label="Text") 
     c2 = wx.CheckBox(panel, label="HTML ") 
     c3 = wx.CheckBox(panel, label="NLP") 
     c1.Bind(wx.EVT_CHECKBOX, self.OntextMetric, c1) 
     c2.Bind(wx.EVT_CHECKBOX, self.OntextMetric,c2) 
     c3.Bind(wx.EVT_CHECKBOX, self.OntextMetric,c3) 
     self.abt_Metric= wx.StaticText(panel, label='') 
     boxsizer.Add(c1,flag=wx.LEFT, border=5) 
     boxsizer.Add(c2,flag=wx.LEFT, border=5) 
     boxsizer.Add(c3,flag=wx.LEFT, border=5) 

     boxsizer.Add(self.abt_Metric, flag = wx.LEFT) 
     panel.SetSizer(boxsizer) 

    def OntextMetric(self,event): 
     if event.IsChecked(): 
      self.abt_Metric.SetLabel(event.GetEventObject().GetLabel() + "collected") 

class MyApp(wx.App): 
    def OnInit(self): 
     frame = MainFrame() 
     frame.Show(True) 
     self.SetTopWindow(frame) 
     return True 

app = MyApp(0) 
app.MainLoop()  

enter image description here

相關問題