Python Kivy的Spinner首先打开了自己的窗口
我是新的编码,所以不要杀了我,因为我确信这是一个愚蠢的错误,但是,我有一个微调器工作,但当我启动代码时,一个只有微调器的窗口弹出。当我关闭该窗口时,现在我的代码运行起来就像我添加微调器之前一样,它会按照我的需要进入登录页面,微调器也在我想要的地方。我只是不知道为什么一开始它会自动打开一个窗口。不确定问题出在哪里,所以我发布了我的全部代码。 我的代码: 我正在使用kivy 1.11.1和windows 10Python Kivy的Spinner首先打开了自己的窗口,python,kivy,Python,Kivy,我是新的编码,所以不要杀了我,因为我确信这是一个愚蠢的错误,但是,我有一个微调器工作,但当我启动代码时,一个只有微调器的窗口弹出。当我关闭该窗口时,现在我的代码运行起来就像我添加微调器之前一样,它会按照我的需要进入登录页面,微调器也在我想要的地方。我只是不知道为什么一开始它会自动打开一个窗口。不确定问题出在哪里,所以我发布了我的全部代码。 我的代码: 我正在使用kivy 1.11.1和windows 10 from kivy.app import App from kivy.lang impor
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.properties import ObjectProperty
from kivy.uix.popup import Popup
from kivy.uix.label import Label
from database import DataBase
from kivy.base import runTouchApp
from kivy.uix.spinner import Spinner
class CreateAccountWindow(Screen):
namee = ObjectProperty(None)
email = ObjectProperty(None)
password = ObjectProperty(None)
def submit(self):
if self.namee.text != "" and self.email.text != "" and self.email.text.count("@") == 1 and self.email.text.count(".") > 0:
if self.password != "":
db.add_user(self.email.text, self.password.text, self.namee.text)
self.reset()
sm.current = "login"
else:
invalidForm()
else:
invalidForm()
def login(self):
self.reset()
sm.current = "login"
def reset(self):
self.email.text = ""
self.password.text = ""
self.namee.text = ""
class LoginWindow(Screen):
email = ObjectProperty(None)
password = ObjectProperty(None)
def loginBtn(self):
if db.validate(self.email.text, self.password.text):
MainWindow.current = self.email.text
self.reset()
sm.current = "main"
else:
invalidLogin()
def createBtn(self):
self.reset()
sm.current = "create"
def reset(self):
self.email.text = ""
self.password.text = ""
class MainWindow(Screen):
n = ObjectProperty(None)
created = ObjectProperty(None)
email = ObjectProperty(None)
current = ""
def logOut(self):
sm.current = "login"
def on_enter(self, *args):
password, name, created = db.get_user(self.current)
self.n.text = "Account Name: " + name
self.email.text = "Email: " + self.current
self.created.text = "Created On: " + created
class WindowManager(ScreenManager):
pass
def invalidLogin():
pop = Popup(title='Invalid Login',
content=Label(text='Invalid username or password.'),
size_hint=(None, None), size=(400, 400))
pop.open()
def invalidForm():
pop = Popup(title='Invalid Form',
content=Label(text='Please fill in all inputs with valid information.'),
size_hint=(None, None), size=(400, 400))
pop.open()
spinner = Spinner(
# default value shown
text='-',
# available values
values=('Calendar', '2 Week Calendar', 'Calendar of Faces'),
# positioning
size_hint=(None, None),
size=(100, 44),
pos_hint={'center_x': .07, 'center_y': .96})
def show_selected_value(spinner, text):
print('The spinner', spinner, 'has text', text)
spinner.bind(text=show_selected_value)
def MoveScreen(text):
if text == "Calendar":
sm.current = "Calendar"
runTouchApp(spinner)
class Calendar(Screen):
CalLink = ObjectProperty(None)
pass
# class CalendarZoom(Screen):
# def
# class WorkoutCal(Screen):
# def
# class FaceCal(Screen):
# def
# class Clothes(Screen):
# def
# class Workout(Screen):
# def
# class Automation(Screen):
# def
# class Statistics(Screen):
# def
# class Settings(Screen):
# def
kv = Builder.load_file("my.kv")
sm = WindowManager()
db = DataBase("users.txt")
screens = [LoginWindow(name="login"), CreateAccountWindow(name="create"),MainWindow(name="main"), Calendar(name="Calendar")]
for screen in screens:
sm.add_widget(screen)
sm.current = "login"
class MyMainApp(App):
def build(self):
return sm
if __name__ == "__main__":
MyMainApp().run()