【发布时间】:2021-05-16 21:23:04
【问题描述】:
我错了,我必须再做一次更新: 接受的答案现在包括一种通过 add_widget 引用生成的 Textinput 的方法,所以我的链接仍然是一种选择,但是通过编辑答案,对于所有想要坚持使用弱引用的人来说,这是一个解决方案,也许这是一个不错的开始方式使用弱引用。
这是我的问题的最后一次编辑: 我问这个问题的原因是我从自动生成的 TextInput 小部件中获取 TextInput 并将这些文本输入添加到列表中的方法。
我的方法完全错误,这就是我被卡住的原因。当我发现很多其他人出于相同的原因(从可用于 py 逻辑的用户界面获取 Textinput)采用相同的方法时,却被卡住了 我确实链接了一个对我有用的“解决方案”,使我能够在没有小部件 ID 的情况下访问 TextInput:
我真的希望能为你们节省一些时间。无论如何,我将答案标记为正确,因为它给出了我所要求的解决方案(我的错误)。
在通过用户输入生成 TextInput 小部件后,我真的很难引用它们。 我已经在尝试 walk() 选项了。
self.ids.grid.clear_widgets([i for i in self.ids.grid.children])
label1 = Label(text="Periode")
label2 = Label(text="Gross Income d Geschäftsfeldes")
self.ids.grid.add_widget(label1)
self.ids.grid.add_widget(label2)
for i in range(int(ButtonsZähler[0])):
label = Label(text="GI in Periode: -" + str(i+1))
text = TextInput(text=' ')
self.ids.grid.add_widget(label)
btn1 = Button(text="Close", )
self.ids.grid.add_widget(text)
self.ids['text'] = weakref.ref(text)
我有以下与此相关的 kivy 代码:
: 名称:'RisikokapitalOperativesRisikoIII'
GridLayout:
id: Peter
cols: 1
GridLayout:
id: grid
name : grid
cols: 2
GridLayout:
id: grid2
cols: 2
Button:
id:zurruck
text:"Abbrechen"
on_press:
app.root.total_button = 5
on_release:
root.redo()
app.root.current = "RisikokapitalOperativesRisikoI"
root.manager.transition.direction = "left"
我不知道如何引用文本输入。标签和文本输入正确显示。我想将用户的所有文本输入添加到一个列表中。我不知道如何解决 add_widget 无法在我的 kv 文件中生成 id 的事实?
亲切的问候
更新: 通过使用已经给出的帮助,我可以在我的控制台中检索以下信息(列表的一部分,它给定所有小部件,但我只发布一个):
<weakref at 0x000001E761011D60; to 'TextInput' at 0x000001E760FFC7B0>
香肠
[
我希望能够访问用户提供的 TextInput 并将此输入添加到列表中。由于文档是为有经验的用户编写的,我可能不是有人愿意给出一个易于理解的示例?
【问题讨论】:
标签: python-3.x kivy kivy-language