Bild anzeigen

  • Hallo zusammen,

    in einem Toplevel-Fenster möchte ich ein Bild anzeigen. Leider wird weder das Bild noch der Text angezeigt. Was mache ich falsch?

    Vielen Dank und einen schönen Tag.

    whitechristmas

  • Hallo,

    wenn ich zum Beispiel das Verzeichnis+Datei /home/pi/hilfe.gif angebe ändert sich nichts. Es wir auch keine Fehlermeldung ausgegeben. Ich habe diesen Teil des Codes auch mal unter Windows ausprobiert, das gleich Ergebnis. Wenn ich den Code in den Teil des Hauptfensters setzte geht es.

    Vielen Dank und liebe Grüße.

    whitechristmas

  • Hallo,

    hier ein vereinfachtes Beispiel bei dem man sehen kann, dass das Bild nicht angezeigt wird. Eine Fehlermeldung kommt nicht.

    Das Bild wird auch gefunden. Wenn ich den Dateinamen bewusst falsch schreibe, erscheint eine Fehlermeldung.

    Viele Dank.

    whitechristmas

  • Aus Performance Sicht wäre es sinnvoller die Bilddateien nur ein mal einzulesen, nicht jedes mal bei Aufruf einer Funktion.

    So funktioniert es:
    [code=php]
    from tkinter import *
    from PIL import Image, ImageTk

    # Aufruf Dialogfenster
    def aufrufdef():
    # Dialogfenster
    dialogfenster=Toplevel()
    dialogfenster.title("Dialogfenster")
    dialogfenster.geometry("600x450")

    bild=Label(dialogfenster, image=hilfebild)
    bild.pack()

    # Hauptprogramm
    hauptfenster=Tk()
    hauptfenster.title("Hauptfenster")
    hauptfenster.geometry("400x200")

    hilfebild=ImageTk.PhotoImage(Image.open("hilfe.png"))

    aufrufdialog=Button(hauptfenster, text="Aufruf Dialog", command=aufrufdef)
    aufrufdialog.place(x=50, y=100, width=100, height=25)

    hauptfenster.mainloop()
    [/php]

  • Aus Performancegründen sollte man zuerst auf * Import verzichten und nur das importieren, was man braucht.


    whitechristmas
    Wie du Text, Button etc. über das Bild legen kannst, wird hier beschrieben.
    http://effbot.org/zone/editing-canvas-text-items.htm
    Das Toplevel Widget hier:
    http://effbot.org/tkinterbook/toplevel.htm

    Der gezeigte Code haust du offensichtlich 1:1 ausm www kopiert. Die Funktion in der Funktion ist auch überflüssig wie das ``quit`` und danach ``destroy``.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!