Seite 1 von 1
Hintergrund, Koordinaten
Verfasst: Samstag 31. Mai 2008, 08:53
von Peak_me
Hallo!
Ich möchte ein Hintergrundbild erzeugen und darauf 20 Bilder an genauen Koordinaten platzieren.
Leider kennt Frame nicht die Option "image", sondern nur "Label".
Und ich weiß nicht, wie man auf einem Label ein anderes Label genau an einer Koordinate erstellt.
Es soll also sowas sein wie:
Code: Alles auswählen
test=Frame(root,image=bild)
test2l=Label(test,image=bild2, x=10, y=20)
Danke schonmal!,
Gruß
peak
Verfasst: Samstag 31. Mai 2008, 09:24
von numerix
Ich würde dafür ein Canvas-Widget nehmen. Das Hintergrundbild zuerst, die Größe des Canvas entsprechend anpassen - das ist dann sozusagen der von dir gewünschte "Frame".
Dann die anderen 20 Bilder einfach darauf platzieren.
Verfasst: Samstag 31. Mai 2008, 15:21
von Peak_me
Ich kannte dieses Canvas-Zeug noch nicht.
Jetzt hab ichs mir mal auf
http://home.foni.net/~heikos/tkinter/node33.html
durchgelesen und es funktioniert wirklich!

danke für die einwandfreie Lösung!
Verfasst: Samstag 31. Mai 2008, 20:01
von Peak_me
Es ist ein Problem aufgetaucht.
Ich habe als erstes Bild den Hintergrund eingefügt.
Darauf möchte ich sowohl das erste Bild (photo1) als auch das zweite Bild (photo2) einfügen.
Doch es erscheint immer nur das zweite Bild, bzw. das letzte Bild was ich auf dem Hintergrund einfügen will.
Wie kann ich alle Bilder anzeigen lassen?
Hier mein verwendetes Programm:
Code: Alles auswählen
from Tkinter import *
import ImageTk
canvas=Canvas(width=1000, height=2000, bg='white')
canvas.pack()
hintergrund= ImageTk.PhotoImage(file= "C:/hintergrund.jpg")
canvas.create_image(0,0, image=hintergrund, anchor=NW)
x=115
y=119
photo1= ImageTk.PhotoImage(file= "C:/bla.jpg")
canvas.create_image(115,119, image=photo1, anchor=NW)
x=200
y=300
photo2= ImageTk.PhotoImage(file= "C:/bla2.jpg")
canvas.create_image(x,y, image=photo2, anchor=NW)
Danke schonmal!,
Gruß
peak
Verfasst: Samstag 31. Mai 2008, 20:32
von Peak_me
Äh, ich hab nen Fehler gemacht.
Wenn man unterschiedliche Bildbezeichnungen nimmt (photo1, photo2), dann funktioniert es;
aber nicht, wenn man "photo" nacheinander ein anderes Bild zuordnet.
Code: Alles auswählen
from Tkinter import *
import ImageTk
canvas=Canvas(width=1000, height=2000, bg='white')
canvas.pack()
hintergrund= ImageTk.PhotoImage(file= "C:/hintergrund.jpg")
canvas.create_image(0,0, image=hintergrund, anchor=NW)
x=100
y=200
for i in range(0,1):
x+=50
y+=40
if i==0:
photo= ImageTk.PhotoImage(file= "C:/bla.jpg")
if i==1:
photo= ImageTk.PhotoImage(file= "C:/bla2.jpg")
canvas.create_image(x,y, image=photo, anchor=NW)
also einfach das im vorherigen Beitrag genannte Programm ignorieren...