tkinter中各组件层叠的问题

**问题描述 **
使用tk做GUI设计,遇到后生成的组件是覆盖在先生成的组件的上方的,无论谁先布局。
见下面两张图片的对比,

问题贴图

img

img

我想要达到的结果

我想做出后生成的组件被先生成的组件覆盖的效果。

你需要在tk加载成功后再动态添加l这个空间,这样可以实现你说的覆盖效果

其实很简单,使用组件的tkraise函数就可以了。

以你给出的代码为例:

import tkinter as tk

chuangkou = tk.Tk()
chuangkou.title("test")
chuangkou.geometry('200x50')
l = tk.Label(text='1', font=('Arial', 12), height=1, width=2, bd=1, relief='solid', padx=2, pady=2)
b = tk.Button(font=('Arial', 6), height=1, width=2, bd=3, relief='raised', padx=2, pady=3)
b.place(x=0, y=0)
l.place(x=6, y=6, )
chuangkou.mainloop()

你最后生成了button,因此,一般地,你的按钮会遮挡住label。

使用以下代码:

#...
b.place(x=0, y=0)
l.place(x=6, y=6, )

l.tkraise()#主要方法

chuangkou.mainloop()

就能让label提前。

那你需要把之前生成的删除,要不然你后面生成的把宽和高调大点就盖住了