使用 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 控件被使用作为容器,并且 fillexpand 参数被设置为 True,以使其充满整个窗口。背景图片被创建并使用 create_image 方法添加到 Canvas 的最底层。

其他组件(如 Label 和 Button)通过 grid 方法添加到 Canvas 上。由于 Canvas 在最底层,因此其他组件不会被遮挡。

Tkinter 窗口背景图片布局:使用 Canvas 控件实现背景图不遮挡组件

原文地址: https://www.cveoy.top/t/topic/ovSv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录