Python telethon和kivy-自动输入电话号码

Python telethon和kivy-自动输入电话号码,python,kivy,telethon,Python,Kivy,Telethon,我正在用kiviymd框架和TelethonAPI制作一个简单的应用程序。在连接过程中,telethon会在控制台中询问电话号码。我想通过kivy MDM对话框设置数字。我已尝试重定向到我的函数,但没有帮助。我需要以某种方式绑定到OK按钮回调。请告诉我怎么做 from kivy.uix.boxlayout import BoxLayout from kivymd.app import MDApp from kivymd.uix.button import MDFlatButton from ki

我正在用kiviymd框架和TelethonAPI制作一个简单的应用程序。在连接过程中,telethon会在控制台中询问电话号码。我想通过kivy MDM对话框设置数字。我已尝试重定向到我的函数,但没有帮助。我需要以某种方式绑定到OK按钮回调。请告诉我怎么做

from kivy.uix.boxlayout import BoxLayout
from kivymd.app import MDApp
from kivymd.uix.button import MDFlatButton
from kivymd.uix.dialog import MDDialog
from kivymd.uix.textfield import MDTextField
from telethon import TelegramClient
from kivy.lang import Builder


KV = '''
<Content>
    orientation: "vertical"
    spacing: "12dp"
    size_hint_y: None
    height: "120dp"

    MDTextField:
        id: 'phone_text'
        hint_text: "Phone:"
        
FloatLayout:

    MDFlatButton:
        text: "START"
        pos_hint: {'center_x': .5, 'center_y': .5}
        on_release: app.start()
'''


class Content(BoxLayout):
    pass


class DemoApp(MDApp):
    dialog = None

    def myfunc(self):
        self.dialog = MDDialog(
            size_hint=(.45, None),
            auto_dismiss=False,
            type="custom",
            content_cls=Content(),
            buttons=[
                MDFlatButton(
                    text="CANCEL", text_color=self.theme_cls.primary_color, on_release=self.close
                ),
                MDFlatButton(
                    text="OK", text_color=self.theme_cls.primary_color, on_release=self.on_edit
                ),
            ],
        )
        self.dialog.open()

        return ""

    def close(self, inst):
        self.dialog.dismiss()

    def on_edit(self, inst):
        for obj in self.dialog.content_cls.children:
            if isinstance(obj, MDTextField):
                self.dialog.dismiss()
                return obj.text
        self.dialog.dismiss()
        return ''

    def build(self):
        screen = Builder.load_string(KV)
        return screen

    def start(self):
        api_id = 0000000
        api_hash = '2365461t2634551t265124d234t5d24'
        self.client = TelegramClient('anon', api_id, api_hash)
        self.client.connect()

        # here i am redirecting input to my function
        self.client.start(phone=self.myfunc)

DemoApp().run()
从kivy.uix.boxlayout导入boxlayout
从kivymd.app导入MDApp
从kivymd.uix.button导入MDFlatButton
从kivymd.uix.dialog导入MDDialog
从kivymd.uix.textfield导入MDTextField
从telethon导入电报客户端
从kivy.lang导入生成器
KV='''
方向:“垂直”
间距:“12dp”
尺寸提示:无
高度:“120dp”
MDTextField:
id:'电话\文本'
提示文字:“电话:”
浮动布局:
MDFlatButton:
正文:“开始”
位置提示:{'center_x':.5'center_y':.5}
发布时:app.start()
'''
课程内容(BoxLayout):
通过
类DemoApp(MDApp):
对话框=无
def myfunc(自我):
self.dialog=MDDialog(
大小提示=(.45,无),
自动退出=错误,
type=“自定义”,
content_cls=content(),
钮扣=[
MDFlatButton(
text=“CANCEL”,text\u color=self.theme\u cls.primary\u color,on\u release=self.close
),
MDFlatButton(
text=“OK”,text\u color=self.theme\u cls.primary\u color,on\u release=self.on\u edit
),
],
)
self.dialog.open()
返回“”
def关闭(自身、仪表):
self.dialog.disclose()
def on_编辑(自身、安装):
对于self.dialog.content_cls.children中的obj:
如果isinstance(对象,MDTextField):
self.dialog.disclose()
返回obj.text
self.dialog.disclose()
返回“”
def生成(自):
屏幕=建筑商。负载_串(KV)
返回屏幕
def启动(自):
api_id=0000000
api_散列='2365461t2634551t265124d234t5d24'
self.client=TelegramClient('anon',api\u id,api\u散列)
self.client.connect()
#这里我将输入重定向到我的函数
self.client.start(phone=self.myfunc)
DemoApp().run()

Kivy有螺纹吗?是否调用了
myfunc
(添加
print
以检查此项)?Telethon被卡住了还是仍在通过控制台询问?