Bild in Tkinter Label?

Ich bin neu in python-GUI-Programmierung, möchte ich hinzufügen, dass ein Bild in mein tkinter-label, ich habe folgenden code, aber das Fenster zeigt nicht mein Bild. Pfad des Bildes ist der gleiche Ordner, wie dieser code.

import ImageTk
import Tkinter as tk
from Tkinter import *
from PIL import Image


def make_label(master, x, y, w, h, img, *args, **kwargs):
    f = Frame(master, height = h, width = w)
    f.pack_propagate(0) 
    f.place(x = x, y = y)
    label = Label(f, image = img, *args, **kwargs)
    label.pack(fill = BOTH, expand = 1)
    return label


if __name__ == '__main__':
    root = tk.Tk()
    frame = tk.Frame(root, width=400, height=600, background='white')
    frame.pack_propagate(0)
    frame.pack()
    img = ImageTk.PhotoImage(Image.open('logo.png'))
    make_label(root, 0, 0, 400, 100, img)
    root.mainloop()
Funktioniert gut für mich. Ist dies Ihre tatsächliche code? Wenn nicht, wäre meine Vermutung, dass die Bild garbage Collection. Bekommst du irgendwelche Fehler?
Nein, es ist kein Fehler, nur ein leeres Fenster.
Wie gesagt, funktioniert gut für mich... also, wenn das dein original-code ist, könnte es sein, dass Ihr 'logo.png' in der Tat viel größer und Sie sehen nur den oberen linken (weißen) Ecke? Auch, was die genaue python-version verwenden Sie?
Habe es, logo.png war zu groß, um angezeigt werden. Danke !!
Sie können Image.open('logo.png').resize((400,100)) um die Größe zu verändern.

InformationsquelleAutor Shivamshaz | 2014-09-02

Schreibe einen Kommentar