Variablen Namen in Schleife ansprechen...

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Jan-Peer
User
Beiträge: 166
Registriert: Dienstag 2. Oktober 2007, 10:55

label ist bereits ein Objekt vom Typ tk.Label - insofern brauchst du `tk` bei `pack` nicht mehr anzugeben.
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Danke!

Habe jetzt versucht das ganze mit Listen zu machen, bekomme aber bei folgendem Script immer eine Fehlermeldung...:

Code: Alles auswählen

import Tkinter as tk
import Image
import random

gui = tk.Tk()

farben = ["Eichel", "Gras", "Herz", "Schelln"]
werte = range(7, 11) + ["Sau", "Ober", "Unter"]
kombiniert = []
for farbe in farben:
	for wert in werte:
		kombiniert.append([wert, farbe])
random.shuffle(kombiniert)

karten = []
bilder = []
for wert,farbe in kombiniert:
	bild_konvert = Image.open("bilder/spielblatt/%s_%s.jpg" %(wert, farbe))
	bilder.append(tk.PhotoImage(bild_konvert))
for bild in bilder:
	karten.append(tk.Label(gui,image=bild))

for x in karten:
	x.pack()
gui.mainloop()

Code: Alles auswählen

Traceback (most recent call last):
  File "D:\Dokumente und Einstellungen\Besitzer\Desktop\Python\schafkopf\index.py", line 21, in <module>
    karten.append(tk.Label(gui,image=bild))
  File "D:\Programme\Python\lib\lib-tk\Tkinter.py", line 2464, in __init__
    Widget.__init__(self, master, 'label', cnf, kw)
  File "D:\Programme\Python\lib\lib-tk\Tkinter.py", line 1930, in __init__
    (widgetName, self._w) + extra + self._options(cnf))
TypeError: __str__ returned non-string (type instance)
Auch nach längerer Suche, konnte ich das Problem nicht lösen - hat von euch jemand eine Ahnung?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Guck doch einfach mal in effbots Beispiel, dort ist doch genau beschrieben, dass du, nachdem du das `Image` geladen hast, es noch in ein `ImageTk` wandeln musst.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Danke...

Ich bin so dumm...
Antworten