tkinter的窗口不能直接设置背景图片,
需要首先创建一个Canvas并加入背景图片,放在窗口上,
然后创建其他的控件,再用place方法放置,
这样新创建的控件会自动层叠在Canvas的上面,Canvas成为了最底层。
代码:
import tkinter as tk
import tkinter.messagebox as msgbox
from PIL import Image,ImageTk
root=tk.Tk()
root.title("窗体背景图")
cv=tk.Canvas(root)
cv.pack(expand=True,fill=tk.BOTH)
# 调用windows自带图片
pic=Image.open("C:\Windows\Web\Wallpaper\Theme1\\img1.jpg","r").resize((800,600))
imtk=ImageTk.PhotoImage(pic)
x,y=250,200
root.geometry('%dx%d+%d+%d'%(pic.width,pic.height,x,y))
cv.create_image(0,0,image=imtk,anchor=tk.NW)
tk.Entry(root).place(x=400,y=340)
tk.Entry(root).place(x=400,y=370)
tk.Button(root,text="登录").place(x=400,y=400)
root.mainloop()
![](http://tiebapic.baidu.com/forum/w%3D580/sign=1318d85d563853438ccf8729a313b01f/a14cc9d162d9f2d3711e0fdeefec8a136327cc29.jpg?tbpicau=2024-07-30-05_68660e7672bd909cacf5a7194e5fd0c0)
需要首先创建一个Canvas并加入背景图片,放在窗口上,
然后创建其他的控件,再用place方法放置,
这样新创建的控件会自动层叠在Canvas的上面,Canvas成为了最底层。
代码:
import tkinter as tk
import tkinter.messagebox as msgbox
from PIL import Image,ImageTk
root=tk.Tk()
root.title("窗体背景图")
cv=tk.Canvas(root)
cv.pack(expand=True,fill=tk.BOTH)
# 调用windows自带图片
pic=Image.open("C:\Windows\Web\Wallpaper\Theme1\\img1.jpg","r").resize((800,600))
imtk=ImageTk.PhotoImage(pic)
x,y=250,200
root.geometry('%dx%d+%d+%d'%(pic.width,pic.height,x,y))
cv.create_image(0,0,image=imtk,anchor=tk.NW)
tk.Entry(root).place(x=400,y=340)
tk.Entry(root).place(x=400,y=370)
tk.Button(root,text="登录").place(x=400,y=400)
root.mainloop()
![](http://tiebapic.baidu.com/forum/w%3D580/sign=1318d85d563853438ccf8729a313b01f/a14cc9d162d9f2d3711e0fdeefec8a136327cc29.jpg?tbpicau=2024-07-30-05_68660e7672bd909cacf5a7194e5fd0c0)