tkinter中我的Label组件为什么放不到Frame里面
from tkinter import *import datetime
root = Tk()
f1 = Frame(root,width=400,height=200,bg="yellow").grid(row=0,column=0,columnspan=2)
Label(f1,text="123").grid()
root.mainloop()
你要把 Frame 实例化的对象赋给 f1,不能把 grid 的返回值赋给 f1
from tkinter import *
import datetime
root = Tk()
f1 = Frame(root,width=400,height=200,bg="yellow") # 注意这里
f1.grid(row=0,column=0,columnspan=2) # 注意这里
Label(f1,text="123").grid()
root.mainloop() 因为你将frame.grid的返回值(none)赋值给了f1,master是第一个参数,默认值为None
如果master为none,tkinter会认为这参数没传,如果没传参数tkinter就认为这东西就是root的,不是frame的
我讲的比isdkz详细吧,最佳答案~
不过isdkz的代码是正确代码 本帖最后由 chinajz 于 2023-3-1 19:54 编辑
上面的grid()指定了行列,下面对应,就可以放上去
from tkinter import *
import datetime
root = Tk()
f1 = Frame(root,width=400,height=200,bg="yellow").grid(row=0,column=0,columnspan=2)
Label(f1,text="123").grid(row=0,column=0,sticky=W)
root.mainloop()
页:
[1]