Python telethon和kivy-自动输入电话号码
我正在用kiviymd框架和TelethonAPI制作一个简单的应用程序。在连接过程中,telethon会在控制台中询问电话号码。我想通过kivy MDM对话框设置数字。我已尝试重定向到我的函数,但没有帮助。我需要以某种方式绑定到OK按钮回调。请告诉我怎么做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
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被卡住了还是仍在通过控制台询问?