for key in range(self.Anzahl):
for key2 in range(self.Anzahl):
if (int(self.GetItem(key2, 2).GetText()) == key):
self.LABELNAME.SetLabel(self.GetItem(key2, 1).GetText() +" "+ self.GetItem(key2, 0).GetText()[0]+"." )
Wie oben in meinem Quellcodebeispiel möchte ich mehrere Labels :
Label1
Label2
Label3
.....
in einer Schleife ändern.. wo derzeit LABELNAME steht.
habt ihr eine Idee wie das geht ?
Mehrere Labels in Schleife ändern ?
Code: Alles auswählen
help(getattr)
Benutze bitte die Code-Funktion, um den Code besser darzustellen.
Du könntest zB die Label-Objekte einer Liste hinzufügen und danach wieder über diese iterieren, um somit irgendwas damit zu machen. Da gibt es mehrere Möglichkeiten, je nach Einsatz...
Du könntest zB die Label-Objekte einer Liste hinzufügen und danach wieder über diese iterieren, um somit irgendwas damit zu machen. Da gibt es mehrere Möglichkeiten, je nach Einsatz...
Code: Alles auswählen
for label in (self.label1, self.label2, self.label3):
label.SetLabel(...)
HWK
- martin101986
- User
- Beiträge: 85
- Registriert: Montag 3. Dezember 2007, 19:15
- Wohnort: Steiermark, Österreich
Hallo mepHy,
willkommen im Forum.
bitte poste in Zukunft mit welche Komponenten du von wxPython verwendest.
Am besten wäre etwas Code von dem was du bis jetzt hast.
Du verwendest nach der Methode GetItem zu beurteilen ein wxListCtrl.
Da ich nicht den genauen Aufbau deines Fensters kenne würde ich folgendes vorschlagen:
Ich weiß nicht ob du von einer anderen Sprache kommst aber die Klammern bei der if Anweisung sind nicht nötig.
Grüße
Martin
willkommen im Forum.
bitte poste in Zukunft mit welche Komponenten du von wxPython verwendest.
Am besten wäre etwas Code von dem was du bis jetzt hast.
Du verwendest nach der Methode GetItem zu beurteilen ein wxListCtrl.
Da ich nicht den genauen Aufbau deines Fensters kenne würde ich folgendes vorschlagen:
Code: Alles auswählen
self.labels = []
#zum erstellen der labels
for i in range(self.anzahl):
label = wx.StaticText(parent,id, label)
self.labels.append(label)
for key in range(self.anzahl):
if self.GetItem(key,2).GetId == key:
self.labels[key].SetLabel(self.GetItem(key2, 1).GetText() +" "+
self.GetItem(key2, 0).GetText()[0]+".")
Grüße
Martin
Ahso, vielen Dank schonmal aber ein Problem habe ich noch... unzwar wurden von mir per hand schon 32 Labels erzeugt.
folgendes funtioniert nicht
Labels wurden alle so erstellt..
Wenn ich die Liste jetzt selber anlege, erkennt er das wohl nicht an...
folgendes funtioniert nicht

Labels wurden alle so erstellt..
Code: Alles auswählen
self.labels1 = wx.StaticText (panel, -1, "Ihre auswahl" , (340, 110),(80,20), style = wx.ST_NO_AUTORESIZE)
self.labels2 = wx.StaticText (panel, -1, "Ihre auswahl" , (420, 130),(80,20), style = wx.ST_NO_AUTORESIZE)
Code: Alles auswählen
self.labelliste= [labels1,labels2,labels3,labels4,labels5,labels6,labels7,labels8,labels9,labels10,labels11,labels12,labels13,labels14,labels15,labels16,labels17,labels18,labels19,labels20,labels21,labels22,labels23,labels24,labels25,labels26,labels27,labels28,labels29,labels30,labels31,labels32]
for key in range(self.Anzahl):
for key2 in range(self.Anzahl):
if (int(self.GetItem(key2, 2).GetText()) == key):
self.labelliste[key].SetLabel(self.GetItem(key2, 1).GetText() +" "+ self.GetItem(key2, 0).GetText()[0]+"." )
Meine letzte Herrausforderung für heute ist es meine Liste (ListCtrl) mit Pickle abzuspeichern. Ich habe sie folgendermaßen erstellt..
Meine Idee war :
Was allerdings nicht funktioniert ...
ich hoffe der Quellcode reicht, da ich schon weiter über 200 Zeilen bin und hiern icht alles Posten wollte ...
Code: Alles auswählen
self.Liste = wx.ListCtrl.__init__(self, panel, -1, (20,20), (240,400),
style=wx.LC_REPORT
| wx.BORDER_NONE)
Meine Idee war :
Code: Alles auswählen
def speichern(self,event):
output = open('data.pkl', 'wb')
pickle.dump(self.Liste, output)
output.close()
def laden(self,event):
inputs = open('data.pkl', 'rb')
self.Liste=pickle.load(inputs)
inputs.close()

-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Eine Fehlermeldung hättest du schon auch mitposten können. Aber davon abgesehen wird es wohl mit so komplexen Objekten nicht gehen. Also wirst du zum Speichern wohl die Daten aus dem Widget auslesen müssen und zum Laden diese in das Widget reinladen müssen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice