2016-07-31 29 views
1

Ich schreibe ein Simpsons Trivia Spiel als mein erstes großes Programmierprojekt. Meine Frage ist zweifach:tkinter Fenster und Hintergrund Bild nicht richtig ausgerichtet

  1. Ist das der richtige Weg, um ein Hintergrundbild zu erstellen? Denken Sie daran, dass mein Plan ist, das Simpsons-Titellied im Hintergrund sowie eine oder zwei Schaltflächen über dem Hintergrundbild einzubinden.
  2. Angenommen, der unten stehende Code ist der richtige Ansatz in Bezug auf das, was ich erreichen möchte, warum bekomme ich eine dünne graue Linie links von meinem Bild und Fenster? Ie. Warum füllt das Bild das Fenster nicht so aus, wie es auf der rechten Seite ist?

Hier ist mein Code:

from tkinter import * 
from tkinter import ttk 
from PIL import Image, ImageTk 

root = Tk() 
root.title("The Simpsons Trivia Game") 
root.geometry('400x600') 
root.resizable(0,0) 

def resize_image(event): 
new_width = event.width 
new_height = event.height 
image = copy_of_image.resize((new_width, new_height)) 
photo = ImageTk.PhotoImage(image) 
label.config(image = photo) 
label.image = photo 

image = Image.open('E:\Simpsons Trivia Game\SimpsonsPic.png') 
copy_of_image = image.copy() 
photo = ImageTk.PhotoImage(image) 
label = ttk.Label(root, image = photo) 
label.bind('<Configure>', resize_image) 
label.pack(fill=BOTH, expand = YES) 

root.mainloop() 

tkinter window with background image (left side of window not perfectly alligned with background image

Antwort

0

Ich bin nicht sicher, ich verstehe alles, aber ich schaffte es der Grenze zu befreien (zumindest auf Linux), indem Sie:

from tkinter import * 
from tkinter import ttk 
from PIL import Image, ImageTk 

root = Tk() 
root.title("The Simpsons Trivia Game") 
root.geometry("400x600") 
root.resizable(0,0) 

image = Image.open('/tmp/foobar.png') 
photo = ImageTk.PhotoImage(image) 
label = ttk.Label(root, image = photo) 
label.pack() 
label.place(relx=0.5, rely=0.5, anchor="center") 

root.mainloop()