Ich möchte meine verschiedenen Checkboxen in einem Wörterbuch speichern, damit ich sie später aufrufen kann. Da ich gerne Aktionen basierend auf der Anzahl der Widgets mit len(self.il['Line2'])
durchführen würde, brauche ich eine Möglichkeit, sie alle in einem Array zu speichern. Speichern jedes von Widgets in einem eindeutigen Eintrag wie:Store Widgets im Wörterbuch
for i in range(7): #INPUT LINE 2
self.il['Line2',i] = QtWidgets.QCheckBox(self.il2info[i],self)
print(self.il['Line2',i])
--------output----------
<PyQt5.QtWidgets.QCheckBox object at 0x0000021A4398EE58>
<PyQt5.QtWidgets.QCheckBox object at 0x0000021A4398EF78>
<PyQt5.QtWidgets.QCheckBox object at 0x0000021A439690D8>
<PyQt5.QtWidgets.QCheckBox object at 0x0000021A43969168>
<PyQt5.QtWidgets.QCheckBox object at 0x0000021A439691F8>
<PyQt5.QtWidgets.QCheckBox object at 0x0000021A43969288>
<PyQt5.QtWidgets.QCheckBox object at 0x0000021A43969318>
aber dann mein len(self.il['Line2'])
Befehl funktioniert nicht. Ich habe versucht, so etwas wie die folgenden:
self.il['Line2'[i]] = QtWidgets.QCheckBox(self.il2info[i],self)
aber einen Fehler von:
IndexError: string index out of range
habe ich versucht, auch zu tun:
self.il['Line2':[i]] = QtWidgets.QCheckBox(self.il2info[i],self)
aber ich bin mit der folgenden Normen erfüllt Fehler von:
TypeError: unhashable type: 'slice'
Gibt es einen Syntaxfehler, den ich vermisse? Können Widget-Objekte nicht in Wörterbüchern gespeichert werden? Gibt es eine Möglichkeit für mich, ID-Widgets zu identifizieren, mit denen ich die ID im Wörterbuch speichern kann?
EDIT: Mein ursprüngliches Problem wurde gelöst, wie ich die Schlüssel/Werte meines Wörterbuchs falsch definierte. Ein Temp-Dictionary zu verwenden, um alle Widgets in einem Array zu sammeln und sie dann mit einem Schlüssel von 'Line2' meinem Hauptwörterbuch gleichzusetzen, behob das Problem.
Sie sind ein Stück Objekt zu speichern, nicht was auch immer Ihre gewünschten Schlüssel. Können Sie Ihr Beispiel aktualisieren? –
Ich fürchte, ich verstehe Ihren Kommentar nicht. Ich möchte, dass das "Objekt" als Wert für meine "Line2" -Taste gespeichert wird. Ich möchte nicht, dass das Objekt in Scheiben geschnitten wird. – JN3
@ JN3 siehe meine Antwort – eyllanesc