Python Kivy 接收 [CRITICAL] App.root 必须是 Widget 的_实例_
Python Kivy Receiving [CRITICAL] App.root must be an _instance_ of Widget
我针对此错误检查了其他已回答的问题,但是,我无法解决我遇到的特定问题。所以我想在这里问一下:
希望你们一切都好。
我正在尝试创建一个简单的 Kivy GUI,我将在其中显示实时数据变量。作为身份验证,我想创建一个登录屏幕,但是我无法让它工作。下面是我的代码:
import mysql.connector
from mysql.connector import Error
from kivy.lang import Builder
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.clock import Clock
from kivy.uix.button import Button
from kivy.uix.textinput import TextInput
Builder.load_string("""
<LVAD_GUIDemo>:
name: "login_page"
BoxLayout:
TextInput:
id: username
TextInput:
id: password
password: True # hide password
Button:
text: "Giriş Yap"
on_release: root.verify_credentials()
""")
class LVAD_GUIDemo:
def __init__(self, **kwargs):
super(LVAD_GUIDemo, self).__init__(**kwargs)
self.anchor_x = 'right'
self.anchor_y = 'top'
self.cols = 1
def build(self):
global username, password
username = TextInput(text="Kullanıcı Adı:", width=6, height=3)
password = TextInput(text="Şifre:", width=6, height=3)
username.size_hint = (1,0.06)
self.add_widget(username)
password.size_hint = (1,0.06)
self.add_widget(password)
touchBarbtn1 = Button(text='Giriş Yap', size_hint_y=0.05,size_hint_x=1)
touchBarbtn1.bind(on_press=lambda x: self.deneme)
self.add_widget(touchBarbtn1)
self.update_view()
def deneme(self):
print("ehe")
def verifyCred(self):
if self.ids["username"].text == "kaan" and self.ids["password"].text == "kaan1999":
self.manager.current = "user"
class LVAD_GUIDemoApp(App):
def build(self):
return LVAD_GUIDemo()
if __name__ == '__main__':
LVAD_GUIDemoApp().run()
当我运行上面的代码时,我收到以下错误:
[严重] App.root 必须是 Widget 的 实例
.....
引发异常('Invalid instance in App.root')
异常:App.root
中的无效实例
这是什么原因?我查找了包含相同错误的 post,但是,大多数错误是由返回 class 对象而不是小部件引起的。但是,我通过添加括号确保返回了一个小部件。
您的 class LVAD_GUIDemo
不是 Widget
。它应该扩展一些 Widget
class.
我针对此错误检查了其他已回答的问题,但是,我无法解决我遇到的特定问题。所以我想在这里问一下:
希望你们一切都好。
我正在尝试创建一个简单的 Kivy GUI,我将在其中显示实时数据变量。作为身份验证,我想创建一个登录屏幕,但是我无法让它工作。下面是我的代码:
import mysql.connector
from mysql.connector import Error
from kivy.lang import Builder
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.clock import Clock
from kivy.uix.button import Button
from kivy.uix.textinput import TextInput
Builder.load_string("""
<LVAD_GUIDemo>:
name: "login_page"
BoxLayout:
TextInput:
id: username
TextInput:
id: password
password: True # hide password
Button:
text: "Giriş Yap"
on_release: root.verify_credentials()
""")
class LVAD_GUIDemo:
def __init__(self, **kwargs):
super(LVAD_GUIDemo, self).__init__(**kwargs)
self.anchor_x = 'right'
self.anchor_y = 'top'
self.cols = 1
def build(self):
global username, password
username = TextInput(text="Kullanıcı Adı:", width=6, height=3)
password = TextInput(text="Şifre:", width=6, height=3)
username.size_hint = (1,0.06)
self.add_widget(username)
password.size_hint = (1,0.06)
self.add_widget(password)
touchBarbtn1 = Button(text='Giriş Yap', size_hint_y=0.05,size_hint_x=1)
touchBarbtn1.bind(on_press=lambda x: self.deneme)
self.add_widget(touchBarbtn1)
self.update_view()
def deneme(self):
print("ehe")
def verifyCred(self):
if self.ids["username"].text == "kaan" and self.ids["password"].text == "kaan1999":
self.manager.current = "user"
class LVAD_GUIDemoApp(App):
def build(self):
return LVAD_GUIDemo()
if __name__ == '__main__':
LVAD_GUIDemoApp().run()
当我运行上面的代码时,我收到以下错误:
[严重] App.root 必须是 Widget 的 实例 ..... 引发异常('Invalid instance in App.root') 异常:App.root
中的无效实例这是什么原因?我查找了包含相同错误的 post,但是,大多数错误是由返回 class 对象而不是小部件引起的。但是,我通过添加括号确保返回了一个小部件。
您的 class LVAD_GUIDemo
不是 Widget
。它应该扩展一些 Widget
class.