Как и в начале приложения приложения, я хочу открыть диалоговое окно, чтобы пользователь мог ввести пароль, и тогда только приложение продолжит работу
Как показать диалог без нажатия кнопки в kivy?
8 августа 2021 в 20:14
66
1
Ответы (1)
9 августа 2021 в 03:01
вы можете создать другой поток, который принимает ответы пользователя из поля ввода и проверяет, достигнуто ли какое-либо условие, чтобы он останавливал цикл
вы сделаете что-то вроде:
import threading
from kivymd.app import MDApp
from kivy.lang import Builder
from threading import Thread
from kivymd.uix.screen import Screen
first_one = '''
MDTextField:
id:ii
pos_hint:{'center_x':.5,'center_y':.5}
size_hint_x:None
width:150
'''
class appp(MDApp):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.screen = Screen()
self.fu = Builder.load_string(first_one)
self.screen.add_widget(self.fu)
thread7 = threading.Thread(target=self.running)
thread7.start()
def build(self):
return self.screen
def running(self):
while True:
if self.fu.text != "":
print(self.fu.text)
if len(self.fu.text) > 15:
break
appp().run()
9 августа 2021 в 05:25
Итак, это совершенно другой подход... но что делает thread7 = threading.Thread(target=self.running) thread7.start()?
9 августа 2021 в 12:04
это делает второстепенную программу из основной программы --- вы можете больше узнать о концепции многопоточности. вы можете изменить MDTextField на другой виджет, но убедитесь, что этот виджет возвращает текст от пользователя
Stack Overflow не является сервисом для написания кода или обучения. Пожалуйста, отредактируйте свой вопрос и опубликуйте то, что вы пробовали до сих пор, включая пример ввода, ожидаемый вывод, фактический вывод (если есть) и полный текст любых ошибок или трассировок, все как отформатированный текст в самом вопросе. Не публиковать изображения текста.