2017-11-06 5 views
-1

ich folgende Python-Code haben:Tkinter Bild ist leer

from tkinter import * 
from PIL import ImageTk, Image 
import sys, os 
height = 5 
width = 8 

# window = Tk() 


class NSUI(Frame): 
    def reload(self): 
     os.execl(sys.executable, sys.executable, *sys.argv) 
    def __init__(self, master=None): 
     """ 
     Initialise process application 
     """ 
     Frame.__init__(self, master) 
     self.grid() 
     self.master.title('PROGProject') 
     # Configure columns 
     for r in range(7): 
      self.master.rowconfigure(r, weight=1) 
     # Create columns 
     for c in range(7): 
      self.master.columnconfigure(c, weight=1) 
      Button(master, text = "Actuele reistijden", bg = '#005ca0', fg = 'white', font = "Verdana 10", width = width, height = height, command = self.reload).grid(row = 5,column = 2,sticky = E+W) 
      Button(master, text = 'Storingen', bg = '#005ca0', fg = 'white', font = "Verdana 10", width = width, height = height, command = self.reload).grid(row = 5,column = 4,sticky = E+W) 

     Label(master, text = 'Welkom bij NS',font = "Verdana 50", bg = "#EFD10E", fg = "#005ca0").grid(row=0,column=1, columnspan=5) 

     path = "test.jpg" 
     img = ImageTk.PhotoImage(Image.open(path)) 
     panel = Label(root, image=img).grid(column=2,row=2) 






root = Tk() 

root.configure(background="#EFD10E") 
root.tk.call('tk', 'scaling', 1.5) 

app = NSUI(master=root) 
app.mainloop() 

Es sollte ein Bild laden, wird das Bild im richtigen Verzeichnis ist, habe ich davon sicher. aber aus irgendeinem Grund lädt es nur ein weißes Quadrat. Weiß jemand wie das möglich ist?

Das entsprechende Stück Code, die ich hinzugefügt haben:

path = "test.jpg" 
img = ImageTk.PhotoImage(Image.open(path)) 
panel = Label(root, image=img).grid(column=2,row=2) 

Vielen Dank im Voraus.

+0

Dies kann relevant sein: [Warum erscheinen meine Tkinter Bilder nicht?] (Http://effbot.org/pyfaq/why-do-my-tkinter-images-not-appear.htm) – Kevin

Antwort

1

Sie müssen das Bild an das Objekt verankern.

path = "test.jpg" 
img = ImageTk.PhotoImage(Image.open(path)) 
panel = Label(root, image=img) 
panel.photo = img 
panel.grid(column=2,row=2) 
+1

Es Ich werde das als Antwort in 5 Minuten akzeptieren: D –