Python3 tkinter 使用图片作为背景,并在该背景上加输入框,按钮

  最近用到了tkinter,想用自己喜欢的图片作为背景,看了不少博客,可能是我少敲了什么,很少有能成功运行的,最后终于发现了一个可行方案,于是在这里记录一下(代码为原创) 图片使用的p站喜爱画师的作品(因为是以前保存的,抱歉没找到画师链接),侵删。

import tkinter as tk
from PIL import ImageTk, Image

root = tk.Tk()
#背景
canvas = tk.Canvas(root, width=1200,height=699,bd=0, highlightthickness=0)
imgpath = 'background.gif'
img = Image.open(imgpath)
photo = ImageTk.PhotoImage(img)

canvas.create_image(700, 500, image=photo)
canvas.pack()
entry=tk.Entry(root,insertbackground='blue', highlightthickness =2)
entry.pack()

canvas.create_window(100, 50, width=100, height=20,
                                       window=entry)



root.mainloop()

输出效果为

 下面来进行解释

使用canvas,其中width,height参数为画布的宽和高,bd(borderwidth)为 文本框边框宽度

canvas = tk.Canvas(root, width=1200,height=699,bd=0, highlightthickness=0)

使用PhotoImage,要注意,此处只能使用gif格式的图片,关于gif图片可以用ps打开jpg,png然后另存为gif即可获得gif格式的图片

imgpath = 'background.gif'
img = Image.open(imgpath)
photo = ImageTk.PhotoImage(img)

此处的700,500为偏移参数,大家可以根据自己的需要进行调整

canvas.create_image(700, 500, image=photo)
canvas.pack()

此处将输入框作为canvas的window即可实现在canvas上出现输入框,按钮同理,将create_window()中window参数改为相应的button即可

entry=tk.Entry(root,insertbackground='blue', highlightthickness =2)
entry.pack()

canvas.create_window(100, 50, width=100, height=20,
                                       window=entry)

 

  • 65
    点赞
  • 342
    收藏
    觉得还不错? 一键收藏
  • 26
    评论
要给 Python 中的 tkinter 登录界面添背景图片,可以使用 PIL 模块来实现。以下是一个简单的代码示例: ```python from tkinter import * from PIL import ImageTk, Image root = Tk() # 设置窗口大小和标题 root.geometry("500x500") root.title("登录界面") # 背景图片 bg_image = ImageTk.PhotoImage(Image.open("background.jpg")) bg_label = Label(root, image=bg_image) bg_label.place(x=0, y=0, relwidth=1, relheight=1) # 添用户名和密码输入框 username_label = Label(root, text="用户名") username_label.pack() username_entry = Entry(root) username_entry.pack() password_label = Label(root, text="密码") password_label.pack() password_entry = Entry(root, show="*") password_entry.pack() # 添登录按钮 login_button = Button(root, text="登录") login_button.pack() root.mainloop() ``` 在上面的代码中,我们首先导入了 tkinter 和 PIL 模块。然后,我们创建了一个窗口,并设置了它的大小和标题。 接着,我们使用 PIL 模块载了一张背景图片,并将它添到了一个 Label 控件中。我们使用了 `place()` 方法将这个 Label 控件放置在窗口的最底层,并将它的宽度和高度设置为相对于窗口的比例,这样就可以保证背景图片始终铺满整个窗口。 最后,我们添了用户名和密码输入框以及一个登录按钮。这里并没有什么特别之处,只是普通的 tkinter 控件罢了。 需要注意的是,在使用 PIL 模块图片时,我们需要将图片转换为 ImageTk.PhotoImage 类型,否则无法在 tkinter 窗口中显示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值