Bilder übereinander legen

Fragen zu Tkinter.
Antworten
misterjosu
User
Beiträge: 44
Registriert: Samstag 29. Dezember 2012, 21:40

Herzliches hallo an alle die sich mit meinem Problem befassen ;)

Ich habe gerade angefangen das Browsergame "die Stämme" nachzuschreiben. jetzt bin ich dabei das fenster zu schreiben in dem man sein dorf sieht, ist nichts besonderes man soll nur auf Gebäude klicken können.

Vorgestellt habe ich mir das ganze so dass es ein "Grund" label gibt in dem die Landschaft als bild ist und dass dann die Gebäude als gif mit Alphakanal die richtige stelle darüber gelegt werden in einem anderen label.

mein Problem ist jetzt dass bild 2 bild 1 überdeckt ( und auch klein skaliert)

Jetzt ist meine frage ob sich das in tkinter machen lässt und wenn nicht wie würdet ihr das umsetzen ?

Code: Alles auswählen

import tkinter as tk

class Dorf(object):


    def __init__(self, parent):
        self.parent = parent
        # images
        self.village_landscape = tk.PhotoImage(file="dorf.gif")
        self.mainhouse = tk.PhotoImage(file="hauptgebaeude.gif")

        self.base = tk.Label(self.parent, image=self.village_landscape, height=576, width=1200)
        self.base.grid(row=0, column=0)

        self.house = tk.Label(self.base, image=self.mainhouse)
        self.house.grid(row=0, column=0)
        

if __name__ == "__main__":
    root = tk.Tk()
    D = Dorf(root)
BlackJack

@misterjosu: Zwei Widgets an der gleichen Zelle im `grid`-Layout geht nicht. Das klingt eher nach einer Aufgabe für ein `Canvas`.

Zusätzlich würde ich darüber nachdenken diese Kompositionsaufgaben nicht mit `Tkinter` zu machen sondern zum Beispiel mit der Python Imaging Library (PIL) weil `Tkinter` nur die binäre Transparenz von GIF kann, was wiederum auf 256 Farben pro Bilddatei beschränkt ist. Eigentlich möchte man heute nicht durch eine beschränkte Farbpalette eingeschränkt werdne und hätte auch gerne einen vollen Alphakanal statt einer ”unsichtbaren” Farbe in der Palette. PNG ist das bessere Format für so etwas.
misterjosu
User
Beiträge: 44
Registriert: Samstag 29. Dezember 2012, 21:40

Danke erstmal, ich glaube aber dass meine frage etwas falsch formuliert war. ich will die bilder zu einer oberfläche zusammenfügenalsoeinem hintergrund, auf demmehrere bilder an bestimmtenpositionenlioegen und aud die manklicken können soll.
BlackJack

@misterjosu: So hatte ich die Frage schon verstanden.
misterjosu
User
Beiträge: 44
Registriert: Samstag 29. Dezember 2012, 21:40

Ok. Danke
Antworten