kivy一运行就结束进程

python使用kivy,编辑了一串关于APP登陆注册界面的代码,但是一运行,窗口冒出来一下下就瞬间关闭,但是其他显示hello world这样的窗口是正常出现的

import kivy
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button

kivy.require('2.1.0')


class LoginScreen(BoxLayout):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)

        self.orientation = 'vertical'
        self.padding = [50, 50, 50, 50]

        # 标题
        self.add_widget(Label(text='登录', font_size=30, size_hint_y=0.2))

        # 用户名
        self.username = TextInput(multiline=False, size_hint_y=0.2, hint_text='请输入用户名')
        self.add_widget(self.username)

        # 密码
        self.password = TextInput(multiline=False, password=True, size_hint_y=0.2, hint_text='请输入密码')
        self.add_widget(self.password)

        # 登录按钮
        self.login_button = Button(text='登录', size_hint_y=0.2)
        self.login_button.bind(on_press=self.login)
        self.add_widget(self.login_button)

        # 注册链接
        self.add_widget(Label(text='还没有账号?', size_hint_y=0.2))
        self.register_link = Button(text='点击注册', size_hint_y=0.2)
        self.register_link.bind(on_press=self.switch_to_register)
        self.add_widget(self.register_link)

    def login(self, instance):
        username = self.username.text
        password = self.password.text

        print(f'尝试登录,用户名:{username},密码:{password}')
        # 在这里添加登录的验证逻辑

    def switch_to_register(self, instance):
        print('切换到注册界面')
        # 在这里实现切换到注册界面的逻辑


class RegisterScreen(BoxLayout):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)

        self.orientation = 'vertical'
        self.padding = [50, 50, 50, 50]

        # 标题
        self.add_widget(Label(text='注册', font_size=30, size_hint_y=0.2))

        # 用户名
        self.username = TextInput(multiline=False, size_hint_y=0.2, hint_text='请输入用户名')
        self.add_widget(self.username)

        # 密码
        self.password = TextInput(multiline=False, password=True, size_hint_y=0.2, hint_text='请输入密码')
        self.add_widget(self.password)

        # 确认密码
        self.confirm_password = TextInput(multiline=False, password=True, size_hint_y=0.2, hint_text='请确认密码')
        self.add_widget(self.confirm_password)

        # 注册按钮
        self.register_button = Button(text='注册', size_hint_y=0.2)
        self.register_button.bind(on_press=self.register)
        self.add_widget(self.register_button)

        # 登录链接
        self.add_widget(Label(text='已有账号?', size_hint_y=0.2))
        self.login_link = Button(text='点击登录', size_hint_y=0.2)
        self.login_link.bind(on_press=self.switch_to_login)
        self.add_widget(self.login_link)

    def register(self, instance):
        username = self.username.text
        password = self.password.text
        confirm_password = self.confirm_password.text

        print(f'尝试注册,用户名:{username},密码:{password},确认密码:{confirm_password}')
        # 在这里添加注册的验证逻辑

    def switch_to_login(self, instance):
        print('切换到登录界面')

        class MyApp(App):
            def build(self):
                return LoginScreen()

        if __name__ == '__main__':
            MyApp().run()

img

  • 一运行就直接结束了,求大家帮我看看怎么回事呀
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/361578
  • 你也可以参考下这篇文章:python调用其他.py中的函数或者类
  • 除此之外, 这篇博客: python中的 python 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    • python 是一种面向对象的解释型编程语言,而且 python 语法简洁,清晰,具有一组功能丰富而强大的类库。

    • 变量的命名 :变量名只能包括字母,数字和下划线,且第一个字符必须是字母或下划线,不能是数字。

    • 变量的数据类型 :数字 ,布尔类型 ,字符串

      • 1,数字 :int(整型),float(浮点型),complex(复数)
      • 2,布尔类型 :只有 “ True(真)” 和 “ False(假)” 两种
      • 3,字符串是以单引号或双引号包括起来的任意文本,如 ’ abc ’ , “xyz” 等

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^