Python Tkinter中的.grid问题

Python Tkinter中的.grid问题,python,tkinter,grid,Python,Tkinter,Grid,我对编码/Python非常陌生,但基本上我正在尝试使用.grid移动按钮和标签,然而,StartPage类中的按钮和标签不会移动到我要求的位置(甚至根本不会移动)。 BMR类中的所有内容都运行良好(尽管您看到的位置不是最终位置,我只是检查一下) 有什么区别?如果我在两个类中给出相同的细节,为什么它们不出现在相同的位置 将tkinter作为tk导入 类首字母缩写(tk.tk): 定义初始化(self,*args,**kwargs): tk.tk.\uuuuu初始化(self,*args,**kwa

我对编码/Python非常陌生,但基本上我正在尝试使用.grid移动按钮和标签,然而,
StartPage
类中的按钮和标签不会移动到我要求的位置(甚至根本不会移动)。
BMR
类中的所有内容都运行良好(尽管您看到的位置不是最终位置,我只是检查一下)

有什么区别?如果我在两个类中给出相同的细节,为什么它们不出现在相同的位置

将tkinter作为tk导入
类首字母缩写(tk.tk):
定义初始化(self,*args,**kwargs):
tk.tk.\uuuuu初始化(self,*args,**kwargs)
容器=tk.框架(自身)
container.pack(side='top',fill='both',expand=True)
container.grid_rowconfigure(0,权重=1)
container.grid\u column配置(0,权重=1)
self.frames={}
对于F英寸(起始页,BMR):
框架=F(容器,自身)
self.frames[F]=帧
frame.grid(行=0,列=0,sticky='nsew')
自显示帧(起始页)
def显示画面(自身,续):
帧=自身帧[续]
frame.tkraise()
类起始页(tk.Frame):#网格无法按我希望的方式工作
定义初始化(自、父、控制器):
tk.Frame.\uuuu init\uuuuu(自,父)
label=tk.label(self,text=“起始页”)
label.grid(column=3,row=3,sticky='we')
button=tk.button(self,text=“计算BMR”,
command=lambda:controller.show_frame(BMR))
grid(行=4,列=3,sticky='we')
BMR级(传统框架):#网格工作完美
定义初始化(自、父、控制器):
tk.Frame.\uuuu init\uuuuu(自,父)
label=tk.label(self,text=“BMR计算器”)
label.grid(列=1,行=1)
button1=tk.Button(self,text=“返回主页”,
命令=lambda:controller.show_帧(起始页))
按钮1.网格(列=2,行=2)
提交=传统按钮(self,text=“计算”)
submit.grid(列=3,行=3)
var1=tk.IntVar()
检查按钮(self,text='Male',bg='white',变量=var1).grid(列=4,行=4)
var2=tk.IntVar()
检查按钮(self,text='Female',bg='white',变量=var2).grid(列=5,行=5)
高度输入=tk.输入(自身,宽度=20,bg=“白色”).网格(列=6,行=6)
app=首字母缩写()
app.mainloop()
我知道这是您希望定位标签和按钮的方式。
请看评论。您可以编辑width属性的值,使其适合您的帧。

因为您使用的是sticky='we',您实际希望如何放置标签和按钮?@Namandeep_Kaur,老实说,这是在我放弃之后,所以第3列第3行可以忽略。然而,我的目标是把它放在框架的顶部。
class StartPage(tk.Frame):  
    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)
        label = tk.Label(self, text="Start Page", width = 80)
        # Added width property in the line above
        # and changed sticky property to N
        label.grid(row = 3, column=3, sticky = 'N')
        label.width = 20
        button = tk.Button(self, text="Calculate BMR", 
            command=lambda: controller.show_frame(BMR))
        button.grid(row=4, column=3)
        # Removed sticky property for the button