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...