【问题标题】:Python Kivy Receiving [CRITICAL] App.root must be an _instance_ of WidgetPython Kivy 接收 [CRITICAL] App.root 必须是 Widget 的_instance_
【发布时间】:2021-10-11 22:44:11
【问题描述】:

我检查了其他已回答的问题是否存在此错误,但是,我无法解决我遇到的特定问题。因此我想在这里问它:

希望你们一切都好。

我正在尝试创建一个简单的 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()

当我运行上面的代码时,我收到以下错误:

[CRITICAL] App.root 必须是 Widget 的 instance ...... raise Exception('App.root 中的无效实例') 例外:App.root 中的实例无效

这是什么原因?我查找了包含相同错误的帖子,但是,大多数错误是由返回类对象而不是小部件引起的。但是,我确保通过添加括号返回一个小部件。

【问题讨论】:

    标签: python user-interface kivy


    【解决方案1】:

    您的班级LVAD_GUIDemo 不是Widget。它应该扩展一些 Widget 类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-30
      • 1970-01-01
      • 2022-12-09
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多