Уведомления

Группа в Telegram: @pythonsu

#1 Март 6, 2017 15:09:10

ruha23
Зарегистрирован: 2017-03-06
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача значения с RadioBox

Привет всем!
Уважаемые прогерры, такой вопрос: пишу прогу (типа калькулятора) на wxWidgets.Столкнулся с таким вопросом, есть блок radioBox, необходимо чтобы при выборе определенного пункта передвавлось значение в text.Ctrl, а при выборе лругого значения-предидущее удалялось. Код прилагаю , работаю в boa-constructor но это не столь важно. Возможно недосмотрел чего где, но толковой инфы не нашел. Прошу не судить стрго а просто пнуть в правильном направлении.

[code python]import wx

def create(parent):
return Frame1(parent)

[wxID_FRAME1, wxID_FRAME1CLICK1, wxID_FRAME1CLICK2, wxID_FRAME1CLICKPLUS,
wxID_FRAME1CLICKRAVNO, wxID_FRAME1PANEL1, wxID_FRAME1RADIOBOX1,
wxID_FRAME1TEXTCTRL,
] = [wx.NewId() for _init_ctrls in range(8)]

class Frame1(wx.Frame):
def _init_ctrls(self, prnt):
# generated method, don't edit
wx.Frame.__init__(self, id=wxID_FRAME1, name='', parent=prnt,
pos=wx.Point(256, 125), size=wx.Size(683, 333),
style=wx.DEFAULT_FRAME_STYLE, title='Frame1')
self.SetClientSize(wx.Size(683, 333))

self.panel1 = wx.Panel(id=wxID_FRAME1PANEL1, name='panel1', parent=self,
pos=wx.Point(0, 0), size=wx.Size(683, 333),
style=wx.TAB_TRAVERSAL)

self.Click1 = wx.Button(id=wxID_FRAME1CLICK1, label=u'1',
name=u'Click1', parent=self.panel1, pos=wx.Point(88, 96),
size=wx.Size(56, 30), style=0)
self.Click1.Bind(wx.EVT_BUTTON, self.OnClick1Button,
id=wxID_FRAME1CLICK1)

self.textCtrl = wx.TextCtrl(id=wxID_FRAME1TEXTCTRL, name=u'textCtrl',
parent=self.panel1, pos=wx.Point(120, 40), size=wx.Size(200, 27),
style=0, value=u'')

self.Click2 = wx.Button(id=wxID_FRAME1CLICK2, label=u'2',
name=u'Click2', parent=self.panel1, pos=wx.Point(168, 96),
size=wx.Size(56, 30), style=0)
self.Click2.Bind(wx.EVT_BUTTON, self.OnClick2Button,
id=wxID_FRAME1CLICK2)

self.ClickPlus = wx.Button(id=wxID_FRAME1CLICKPLUS, label=u'+',
name=u'ClickPlus', parent=self.panel1, pos=wx.Point(352, 88),
size=wx.Size(95, 104), style=0)
self.ClickPlus.Bind(wx.EVT_BUTTON, self.OnClickPlusButton,
id=wxID_FRAME1CLICKPLUS)

self.ClickRavno = wx.Button(id=wxID_FRAME1CLICKRAVNO, label=u'=',
name=u'ClickRavno', parent=self.panel1, pos=wx.Point(88, 184),
size=wx.Size(200, 86), style=0)
self.ClickRavno.Bind(wx.EVT_BUTTON, self.OnClickRavnoButton,
id=wxID_FRAME1CLICKRAVNO)

self.radioBox1 = wx.RadioBox(choices=['1', '23', '46'],
id=wxID_FRAME1RADIOBOX1, label=u'radioBox1', majorDimension=1,
name='radioBox1', parent=self.panel1, pos=wx.Point(504, 112),
size=wx.Size(71, 96), style=wx.RA_SPECIFY_COLS)
self.radioBox1.Bind(wx.EVT_RADIOBOX, self.OnRadioBox1Radiobox,
id=wxID_FRAME1RADIOBOX1)

def __init__(self, parent):
self._init_ctrls(parent)

def OnClick1Button(self, event):
#event.Skip()
self.textCtrl.SetValue(self.textCtrl.GetValue()+'1')

def OnClick2Button(self, event):
#event.Skip()
self.textCtrl.SetValue(self.textCtrl.GetValue()+'2')

def OnClickPlusButton(self, event):
#event.Skip()
self.textCtrl.SetValue(self.textCtrl.GetValue()+'+')

def OnClickRavnoButton(self, event):
#event.Skip()
self.textCtrl.SetValue(str(eval(self.textCtrl.GetValue())))

def OnRadioBox1Radiobox(self, event):
event.Skip()
[/code]

Офлайн

#2 Март 7, 2017 03:00:16

Evgen_irk
От: Иркутск
Зарегистрирован: 2009-02-02
Сообщения: 45
Репутация: +  4  -
Профиль   Отправить e-mail  

Передача значения с RadioBox

Офлайн

#3 Март 7, 2017 03:20:12

ruha23
Зарегистрирован: 2017-03-06
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача значения с RadioBox

спасибо большое!
Я извиняюсь,возможно за мою наглость,но такой мануал(только в разных вариациях)я только и встречал,даже на русском языке где то его видел.видимо он один единственный.
Но Вы в данном мануале увидели решение моего вопроса?

Офлайн

#4 Март 7, 2017 03:30:21

Evgen_irk
От: Иркутск
Зарегистрирован: 2009-02-02
Сообщения: 45
Репутация: +  4  -
Профиль   Отправить e-mail  

Передача значения с RadioBox

Вам нужно текст (метку, значение) у RadioBox передать в text.Ctrl, правильно я вас понял?



wxPython

Офлайн

#5 Март 7, 2017 03:40:28

Evgen_irk
От: Иркутск
Зарегистрирован: 2009-02-02
Сообщения: 45
Репутация: +  4  -
Профиль   Отправить e-mail  

Передача значения с RadioBox

 import wx   
class Example(wx.Frame): 
            
   def __init__(self, parent, title): 
      super(Example, self).__init__(parent, title = title,size = (300,200)) 
         
      self.InitUI() 
		
   def InitUI(self):    
      pnl = wx.Panel(self)
		
      self.rb1 = wx.RadioButton(pnl,11, label = 'Value A',
         pos = (10,10), style = wx.RB_GROUP) 
      self.rb2 = wx.RadioButton(pnl,22, label = 'Value B',pos = (10,40)) 
      self.rb3 = wx.RadioButton(pnl,33, label = 'Value C',pos = (10,70)) 
      self.Bind(wx.EVT_RADIOBUTTON, self.OnRadiogroup)
		
      lblList = ['Value X', 'Value Y', 'Value Z'] 
		  
      self.rbox = wx.RadioBox(pnl, label = 'RadioBox', pos = (80,10), choices = lblList,
         majorDimension = 1, style = wx.RA_SPECIFY_ROWS) 
      self.rbox.Bind(wx.EVT_RADIOBOX,self.onRadioBox) 
      
      self.txt = wx.TextCtrl(pnl,44, pos = (100,100))
         
      self.Centre() 
      self.Show(True)    
		
   def OnRadiogroup(self, e): 
      rb = e.GetEventObject() 
      self.txt.SetValue(rb.GetLabel())
      #print rb.GetLabel(),' is clicked from Radio Group' 
		
   def onRadioBox(self,e): 
      self.txt.SetValue(self.rbox.GetStringSelection())
      #print self.rbox.GetStringSelection(),' is clicked from Radio Box' 
   
ex = wx.App() 
Example(None,'RadioButton and RadioBox') 
ex.MainLoop()



wxPython

Отредактировано Evgen_irk (Март 7, 2017 03:43:18)

Офлайн

#6 Март 9, 2017 04:00:03

ruha23
Зарегистрирован: 2017-03-06
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача значения с RadioBox

Evgen_irk
Вам нужно текст (метку, значение) у RadioBox передать в text.Ctrl, правильно я вас понял?
Совершенно верно! Спасибо огромное, суть мне ясна. Мне буквально чууууточку не хватило для решения моего вопроса. вывод такой: нужно было не через boa строить и биться как бендеры за независимость, а просто ручками все набрать, подтолкнули меня в правильное русло.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version