将背景图像设置为GUI

时间:2017-02-05 18:03:25

标签: python image tkinter background python-3.6

我用几个按钮创建了一个GUI,我想将灰色背景更改为图像。

我的代码如下:

from tkinter import *
from urlread import givenumbers # my function

""" Setting The Main GUI """

GUI = Tk()
GUI.title('Check GUI')
GUI.iconbitmap('test.ico')
GUI.geometry("400x400")

background_image=PhotoImage('pic.jpg')
background_label = Label(GUI, image=background_image)
background_label.place(x=0, y=0, relwidth=1, relheight=1)

""" Reading Images For Buttons """
A_Im      = PhotoImage(file='A.gif')


""" Creating Buttons """
# A Button
A_Button = Button(GUI, image=A_Im, command=givenumbers)
A_Button.grid(column=0, row=1)

GUI.mainloop()

代码运行时没有错误但背景仍为灰色而没有任何影响。

2 个答案:

答案 0 :(得分:2)

问题在于background_image=PhotoImage('pic.jpg')行。 PhotoImage类仅支持GIF文件,这意味着它无法读取您指定的文件。你应该尝试这样的事情:

#Python 2.7    
import Tkinter as tk
from PIL import Image, ImageTk
window = tk.Tk()
image = Image.open('image.jpg')
photo_image = ImageTk.PhotoImage(image)
label = tk.Label(window, image = photo_image)
label.pack()

# Python 3
import tkinter as tk
from PIL import Image, ImageTk
window = tk.Tk()
image = Image.open('image.jpg')
photo_image = ImageTk.PhotoImage(image)
label = tk.Label(window, image = photo_image)
label.pack()

PIL模块中的Image类支持多种格式,其中包括jpegpng。您可以通过在命令提示符或终端中运行pip install pillow来安装PIL模块。

如果您想将小部件置于Label之上,您确实可以使用grid将它们放在彼此之上,但使用Canvas可能会更容易。您可以找到有关Canvas小部件here的更多信息。

答案 1 :(得分:1)

这可以在没有人的情况下完成:

from tkinter import *
import tkinter as ttk

""" Setting The Main GUI """

GUI = Tk()

F1=Frame(GUI)
F1=Frame(GUI,width=400,height=450)
F1.place(height=7000, width=4000, x=100, y=100)
F1.config()


F1.grid(columnspan=10,rowspan=10)

F1.grid_rowconfigure(0,weight=1)
F1.grid_columnconfigure(0,weight=1)


photo=PhotoImage(file="C:\\Users\\HOME\\Desktop\\Eshita\\12th\\computer
\\python\\GUI\\math3.gif")
label = Label(GUI,image = photo)
label.image = photo # keep a reference!
label.grid(row=0,column=0,columnspan=20,rowspan=20)

b=ttk.Button(GUI,text="Start")
b.grid(row=8,column=8)

GUI.mainloop()