我在做一个项目,我在用kivy
我想创建一个应用程序,我需要多个页面,因此我正在使用屏幕管理。 我还需要在其中一个页面中获取用户输入并保存它,因此我使用MDTextField获取文本,并使用按钮保存数据。 当我按下按钮时,应用程序应该从文本字段中获取数据并将其保存在带有sqlite3的文件中,但当我按下按钮时,它会给我一个非常奇怪的错误。 我试着在没有ScreenManager的情况下只重写应用程序的那一页,结果成功了。 我怎样才能使它与屏幕管理器一起工作
(如何使用MDTextField和ScreenManager获取用户输入
我将向您展示一些代码行,以便您更好地理解:
这是Kivy代码:
<AddWindow>:
name: "add"
MDTextField:
id: account_link
hint_text: "Link"
helper_text: "Insert the Link of the WebSite to enter in the website from this app"
helper_text_mode: "on_focus"
line_color_normal: app.theme_cls.accent_color
pos_hint: {"center_x": 0.5, "center_y": 0.8}
size_hint_x: None
width: 1200
这是从文本字段获取数据的代码(用户按下提交按钮时执行的代码部分):
data = self.root.ids["account_link"].text
这是我按下按钮时出现的错误:
data = self.root.ids["account_link"].text
KeyError: 'account_link'
注意documentation表示:
糟糕的文档,因为它们在别处将“根部件”称为整个GUI的根。但在本例中,“根小部件”是定义
ids
的规则的根。在您的例子中,这可能是AddWindow
规则(由于kv
代码段的缩进,不能100%确定)。如果是这种情况,则需要对GUI中出现的AddWindow
实例的引用:在没有看到更多代码的情况下,我只能猜测访问
AddWindow
实例的适当方法随着一个完整的代码添加,我现在可以帮助你。以下是
add_passwd()
方法的修改版本:请注意,这还需要对
kv
进行一些更正。无论您在哪里,都可以看到:应改为:
一个例子是
id: "md_account_name"
这是我的更多代码:
相关问题 更多 >
编程相关推荐