【问题标题】:How to show dialog without pressing any button in kivy?如何在不按任何按钮的情况下显示对话框?
【发布时间】:2021-08-08 20:14:20
【问题描述】:

就像在应用程序的应用程序开始时我想打开对话框以便用户可以输入密码然后只有应用程序会继续

【问题讨论】:

  • Stack Overflow 不是代码编写或教程服务。请edit您的问题并发布what you have tried so far,包括示例输入、预期输出、实际输出(如果有),以及任何错误或回溯的全文全部按照格式问题本身中的文本。 不要发布文本图像。

标签: python kivy kivy-language kivymd


【解决方案1】:

您可以创建另一个线程来接受来自输入字段的用户回答,并检查是否满足某些条件以停止循环

你会做这样的事情:

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()

【讨论】:

  • 所以,这是一种完全不同的方法……但是 thread7 = threading.Thread(target=self.running) thread7.start() 是做什么的?
  • 这从主程序中创建了一个小程序——您可以阅读更多关于线程概念的信息。您可以将 MDTextField 更改为另一个小部件,但请确保此小部件从用户返回文本
猜你喜欢
  • 1970-01-01
  • 2017-08-15
  • 1970-01-01
  • 2020-04-12
  • 2021-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多