**问题描述 **
使用tk做GUI设计,遇到后生成的组件是覆盖在先生成的组件的上方的,无论谁先布局。
见下面两张图片的对比,
问题贴图
我想做出后生成的组件被先生成的组件覆盖的效果。
你需要在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提前。
那你需要把之前生成的删除,要不然你后面生成的把宽和高调大点就盖住了