Ок, поставлю вопрос по другому.
На данный момент решил так:
<MainForm>
...
rb_gr_inpsys: gr1
rb_gr_outsys: gr2
Button:
...
GridLayout:
cols: 2
RBGroup:
id: gr1
grp: 'grp1'
RBGroup:
id: gr2
grp: 'grp2'
Button:
...
<RBGroup@GridLayout+Border>
rows: 4
grp: ''
RBCapted:
rb_capt: 'Option A'
group: root.grp
...
RBCapted:
rb_capt: 'Option D'
group: root.grp
<RBCapted>
rb_capt: ''
group: ''
active: False
...
Label:
id: lb
text: root.rb_capt
...
CheckBox:
id: cb
size_hint_y: None
group: root.group
allow_no_selection: False
on_active: root.grp_chg(root.group, root.rb_capt)
active: root.active
И собственно в .ру
class RBCapted(GridLayout):
def grp_chg(self, grp, butt):
if self.ids.cb.active:
MainForm.on_gr1(self, grp, butt)
class MainForm(BoxLayout):
def __init__(self, **kwargs):
super().__init__(**kwargs)
def on_gr1(self, instance, value):
print(f'{self} -- {instance}: {value}')
И такой ход как-то совсем не нравится, мож потому, что опыта маловато. А можно как-то по-другому, так чтоб обработчик работал сразу из класса с главным окном?