Tkinter 窗口背景图片布局:使用 Canvas 控件实现背景图不遮挡组件
使用 Canvas 控件作为容器,并将背景图片放置在 Canvas 的最底层,可以实现 Tkinter 窗口背景图片不遮挡其他组件的效果。
以下是示例代码:
import tkinter as tk
root = tk.Tk()
# 创建 Canvas 控件作为容器
canvas = tk.Canvas(root)
canvas.pack(fill='both', expand=True)
# 添加背景图片
bg_image = tk.PhotoImage(file='background.png')
canvas.create_image(0, 0, anchor='nw', image=bg_image)
# 添加其他组件,使用 grid 方法布局
label1 = tk.Label(canvas, text='Label 1', font=('Arial', 20))
label1.grid(row=0, column=0)
label2 = tk.Label(canvas, text='Label 2', font=('Arial', 20))
label2.grid(row=1, column=0)
button = tk.Button(canvas, text='Button', font=('Arial', 20))
button.grid(row=2, column=0)
root.mainloop()
在该示例中,Canvas 控件被使用作为容器,并且 fill 和 expand 参数被设置为 True,以使其充满整个窗口。背景图片被创建并使用 create_image 方法添加到 Canvas 的最底层。
其他组件(如 Label 和 Button)通过 grid 方法添加到 Canvas 上。由于 Canvas 在最底层,因此其他组件不会被遮挡。
原文地址: https://www.cveoy.top/t/topic/ovSv 著作权归作者所有。请勿转载和采集!