Erstellen von pushButtons aus .xml heraus
Verfasst: Mittwoch 5. August 2020, 20:27
Hallo Zusammen,
ich bin momentan dabei ein Programm zu schreiben, bei dem man Werte für ein Pen&Paper Rollenspiel steigern kann, welche aus einer .xml Datei gelesen werden und danach auch wieder darin gespeichert werden. Dafür nutze ich PyQt5 und xml.minidom.
Erster Auschnitt des Codes: (Für mein Problem wahrscheinlich nicht allzu wichtig)
Im folgendem möchte ich gerne meine PushButtons erstellen. Da ich aber später nochmal auf meine Buttons zugreifen muss und die Anzahl der Eigenschaften nicht fest ist, möchte ich z ("eigenschaft_"+ n) als Button-Namen definieren. In meinem jetzigen Beispiel heißt immer der letzte Button "z".
Wie kann ich meine Buttons ("eigenschaft_"+ n) nennen? Ich habe viel herumprobiert und gesucht, aber letztendlich nichts brauchbares dafür gefunden. Leider bin ich noch blutiger Anfänger, weswegen ich noch nicht so viel Ahnung habe. Ich hoffe ihr könnt mir helfen.
ich bin momentan dabei ein Programm zu schreiben, bei dem man Werte für ein Pen&Paper Rollenspiel steigern kann, welche aus einer .xml Datei gelesen werden und danach auch wieder darin gespeichert werden. Dafür nutze ich PyQt5 und xml.minidom.
Erster Auschnitt des Codes: (Für mein Problem wahrscheinlich nicht allzu wichtig)
Code: Alles auswählen
fd = QFileDialog()
HeroOpen = fd.getOpenFileName(self, 'Datei öffnen', 'Helden', '.xml (*.xml)')
if HeroOpen[0]:
HeroOpen = str(HeroOpen[0])
Helden = minidom.parse(HeroOpen)
Eigenschaft = Helden.getElementsByTagName("eigenschaft")
for c in Eigenschaft:
name = c.getAttribute("name")
wert = c.getAttribute("value")
global Eigenschaftsnamen
Eigenschaftsnamen= Eigenschaftsnamen +[name]
global Eigenschaftswerte
Eigenschaftswerte= Eigenschaftswerte+[wert]
print(Eigenschaftsnamen)
print(len(Eigenschaftsnamen))
Code: Alles auswählen
for n in range(len(Eigenschaftsnamen)):
y= Eigenschaftsnamen[n]
z= 'eigenschaft_'+str(n)
self.z = QtWidgets.QPushButton(self.tab_2)
self.z.setMinimumSize(QtCore.QSize(100, 28))
self.z.setText(str(y + ': ' + Eigenschaftswerte[n]))
self.verticalLayout.addWidget(self.z)