在python中对网格布局使用Tkinter set()属性

在python中对网格布局使用Tkinter set()属性,python,layout,grid,tkinter,set,Python,Layout,Grid,Tkinter,Set,我尝试了许多不同的方法将tkinter中的滑块set()与网格布局一起使用,但我无法让它识别属性 这里有一个不使用set()的函数版本: 这是可以预期的。但如果我改为: Scale(master, from_=0, to=100, label='Brightness').set(50).grid(row=0, sticky=W) 我收到:AttributeError:“非类型”对象没有属性“网格” 如果我尝试使用set()将比例分配给变量,然后将该变量与.grid(row=0,sticky=W

我尝试了许多不同的方法将tkinter中的滑块
set()
与网格布局一起使用,但我无法让它识别属性

这里有一个不使用set()的函数版本:

这是可以预期的。但如果我改为:

Scale(master, from_=0, to=100, label='Brightness').set(50).grid(row=0, sticky=W)
我收到:
AttributeError:“非类型”对象没有属性“网格”

如果我尝试使用
set()
将比例分配给变量,然后将该变量与
.grid(row=0,sticky=W)
一起使用,我会收到相同的结果

我在这里错过了什么?我查看了文档,但与
pack()
相比,
grid()
上似乎没有什么内容,这应该是可行的

scl = Scale(master, from_=0, to=100, label='Brightness')
scl.set(50)
scl.grid(row=0, sticky=W)

方法返回None。因此,您没有收到任何类型错误。从上面的代码中可以看出,您应该首先为变量赋值,然后对该变量使用方法。

谢谢Lafexlos!我试过:#bright=Scale(master,从=0到=100,tickinterval=10,label='Brightness')#x=bright.set(50)#x.grid(row=0,sticky=W)当然没有注释,它不起作用。但是我用你的代码重新启动了内核,它成功了。非常感谢。很抱歉代码混乱。由于某种原因,我的换行代码被删除了。如果您查看我的代码,我会在变量上使用方法(set和grid),而不会将它们分配给任何其他对象,因为这些方法是小部件的方法。如果在
set
之后分配给
x
,则
x
将是
None
。因此,注释中的代码应该是,
bright.set(…)
bright.grid(…)
scl = Scale(master, from_=0, to=100, label='Brightness')
scl.set(50)
scl.grid(row=0, sticky=W)