微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Tkinter Python中将背景图像添加到框架中?我想要背景图像而不是背景色

如何解决如何在Tkinter Python中将背景图像添加到框架中?我想要背景图像而不是背景色

需要添加图像作为框架背景,按钮退出必须在图像上。我尝试了一些代码,但是图像显示在图像的上方和下方。

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


root = Tk()
root.title("Sign In")
root.geometry("600x420")

class one:

    def __init__(self,root):
        self.root = root
        self.frame = Frame(self.root,bg="light blue",width=800,height=400)
        root.geometry("800x400")
        self.header = Label(self.root,bg="blue",fg="white",font=("Times New Roman",30,"bold"))
        self.header.pack(fill=X)
        self.heading = Label(self.root,text="First One","bold"))
        self.heading.place(x=10,y=0)
        self.q = Button(self.frame,text="Quit",bg="brown",10),command=self.root.destroy)
        self.q.place(x=650,y=320,width=120,height=20)
        self.frame.pack()

obj = one(root)
root.mainloop()

解决方法

在Tkinter中,可以通过添加标签作为框架父级来向框架添加背景图像。使用PIL设置标签背景图像,并将框架背景设置为空字符串。

尝试此代码。

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

root = Tk()
root.title("Sign In")
root.geometry("600x420")

class one:

    def __init__(self,root):
        self.root = root
        self.img = ImageTk.PhotoImage(Image.open("bgredgrad.png"))  # label image (frame background)
        self.label = Label(self.root,image = self.img,width=800,height=400)  # frame parent
        
        self.frame = Frame(self.label,bg="",height=400)  # main widget,clear background
        self.frame.place(x=0,y=0,height=400)   # required for correct z-index
        root.geometry("800x400")
        self.header = Label(self.root,bg="brown",fg="white",font=("Times New Roman",30,"bold"))
        self.header.pack(fill=X)
        self.heading = Label(self.root,text="First One","bold"))
        self.heading.place(x=10,y=0)
        self.q = Button(self.frame,text="Quit",10),command=self.root.destroy)
        self.q.place(x=650,y=320,width=120,height=20)
        self.label.pack()  # pack bottom widget

obj = one(root)
root.mainloop()

输出(我的背景)

BG Image

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。