如何在Kivy中使用weakref遍历不同的id级别

我的序列是 id

caption_cancel = "Cancel and go to previous mode" input_password_dialog = QtWidgets.QInputDialog(self) # input_password_dialog.setInputMode(QtWidgets.QInputDialog.TextInput) # input_password_dialog.setOption(QtWidgets.QInputDialog.UsePlainTextEditForTextInput) input_password_dialog.setCancelButtonText(caption_cancel) input_password_dialog.setWindowTitle("Authentification") input_password_dialog.setLabelText("Password") input_password_dialog.setTextEchoMode(QtWidgets.QLineEdit.Password) if input_password_dialog.exec_() == QtWidgets.QDialog.accepted: password = input_password_dialog.textvalue() print(password)

在这种情况下,容器具有70个不同的ID [从 pre_1 pre_70 ],每个pre_(x)具有三个不同的ID [ Si MasMenos ],对应于一组复选框

如果我想使用其属性来了解单个复选框的状态,则必须编写所有这样的语句。

self.ids.cuarta_pantalla.ids.container.ids.pre_1.ids.Si

那么,如何遍历ID?

我尝试使用方括号self.ids.cuarta_pantalla.ids.container.ids.pre_1.ids.Si.value,但返回的内容无法调用任何方法。

使用方括号打印:self.ids.cuarta_pantalla.ids.container.ids['pre_1']

以点表示法打印:<weakref at 0x125F7118; to 'BoxLayout' at 0x125F30D0>


这是我创建对象的方式:

<kivy.uix.boxlayout.BoxLayout object at 0x125F30D0>
HXK3254 回答:如何在Kivy中使用weakref遍历不同的id级别

每次使用add_widget时,都不需要使用弱引用,将一个名为孩子可观察列表放入添加了另一个对象的对象将包含添加对象的引用。

例如:

IDlist = self.ids.cuarta_pantalla.ids.container.children

可以对变量 IDlist 进行迭代,以获取每个引用,您可以在其中调用该特定对象的任何方法

本文链接:https://www.f2er.com/2651425.html

大家都在问