小叶 发表于 2023-2-27 19:33:42

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()


isdkz 发表于 2023-2-27 19:45:00

你要把 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()

歌者文明清理员 发表于 2023-2-28 15:02:36

因为你将frame.grid的返回值(none)赋值给了f1,master是第一个参数,默认值为None
如果master为none,tkinter会认为这参数没传,如果没传参数tkinter就认为这东西就是root的,不是frame的
我讲的比isdkz详细吧,最佳答案~
不过isdkz的代码是正确代码

chinajz 发表于 2023-3-1 16:55:36

本帖最后由 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]
查看完整版本: tkinter中我的Label组件为什么放不到Frame里面