Форум сайта python.su
Туплю чет. В .kv файле определяю виджет:
<RBCapted@GridLayout> rb_capt: '' rb_group: '' Label: id: lb ... CheckBox: id: cb on_active: print(root.rb_group, root.rb_capt) ...
<MainForm> orientation: 'vertical' padding: 10 Button: text: 'upper space' size_hint_y: .2 RBCapted: rb_capt: 'Option A' rb_group: 'gr1' RBCapted: rb_capt: 'Option B' rb_group: 'gr1' ...
class MainForm(BoxLayout): def rb_chg(self, grp, butt): print(f'{grp}: {butt}')
AttributeError: 'RBCapted' object has no attribute 'grp_chg'
Отредактировано Lisergin (Янв. 15, 2023 11:07:43)
Офлайн
Ок, поставлю вопрос по другому.
На данный момент решил так:
<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}')
Офлайн