为什么不能从根类中引用kivy TextInput实例?

时间:2019-08-27 20:25:49

标签: python python-3.x kivy kivy-language

我有一个- hosts: all serial: 1 become: yes tasks: - name: Rebooting ... reboot: reboot_timeout: 60 ,它已被添加到一个奇异的语言TextInput规则中,并声明为从<MyLayout>:继承的python类。然后,当单击另一个按钮时,上述规则会与某些按钮一起添加到BoxLayout中。主要问题是,尽管我可以在ModalView规则中获取按​​钮文本的一个实例,并将该文本传递给<MyLayout>:,但似乎无法得到TextInput文本输出通过名为TextInput的函数。

我能猜到的唯一原因是因为process_output()被垃圾回收了。没有错误,并且当输出为空时,控制台将打印回车,但是当我尝试TextInput print()文本时,屏幕会向上移动。

Python代码:

TextInput

Kivy代码:

class RootLay(FloatLayout):
    def get_keys(self):
        modal = ModalViewer()
        the_key = MyLayout()
        modal.add_widget(the_key)
        modal.open()
    def process_output(self):
        mod = ModalViewer()
        the_key = MyLayout()
        the_output = the_key.ids.show_input.text
        the_key.ids.show_input.text = ''
        print(the_output)
        mod.dismiss()
class MyLayout(BoxLayout):
    show_input = ObjectProperty()
    def __init__(self, **kwargs):
        super(MyLayout, self).__init__(**kwargs)
        btn = ['7', '8', '9', '4', '5', '6', '1', '2', '3', 'IN', '0', 'OUT']
        key_padbtns = []
        for b in btn:
            key_padbtns.append({'text': b, 'size_hint': [1, 1]})
        self.ids.view_keypad.data = key_padbtns

有人可以让我知道发生了什么事吗?

0 个答案:

没有答案