使Tkinter框架填充垂直轴

2024-09-28 23:29:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个密码:

self.master= master
self.master.title('Student Tracker')
self.master.configure(bg='#007534')
self.photo = PhotoImage(file = 'Logo.gif')
self.SchoolLogo = Label(self.master, image = self.photo,bg = 'white').grid(row=0,column=0,columnspan=2,sticky=W+E)
mainFrame = Frame(self.master).grid(sticky=N+E+S+W)
leftSide = Frame(mainFrame,bg='#007534').grid(sticky=N+E+S+W,row=1,column=0,rowspan=5)
rightSide=Frame(mainFrame,bg='#A8D59D').grid(row=1,column=1,rowspan=5,sticky=N+E+S+W)
welcomeLabel= Label(leftSide,text='Welcome', fg='white',bg='#007534').grid(row=2,column=0,sticky=N)
welcome2=Label(rightSide,text='Hello',fg='Black').grid(row=2,column=1)
attendanceBtn=Button(leftSide,text='Attendance',command=self.attendance,bg='white',fg='#007534').grid(row=3,column=0)
gradeBtn=Button(leftSide,text='Grades',command=self.attendance,bg='white',fg='#007534').grid(row=4,column=0)
self.master.grid_columnconfigure(0, weight=1)
self.master.grid_columnconfigure(1, weight=4)

它生成以下布局:Layout

但我也希望画面能填满垂直轴。但是当我尝试使用.grid_rowconfigure(0, weight=1)

我得到第二个布局:Second Layout

看起来很扭曲。是否有任何方法来扩展框架,但使小部件看起来有条理?你知道吗


Tags: textselfmastercolumnframelabelgridrow
1条回答
网友
1楼 · 发布于 2024-09-28 23:29:40

这里有一个小例子来帮助你。它只是在正确的容器中使用grid_rowconfigure()grid_columnconfigure()来定位。你知道吗

import tkinter as tk

root = tk.Tk()
root.configure(bg='#007534')
mainFrame = tk.Frame(root).grid(sticky="nsew")
leftSide = tk.Frame(mainFrame, bg='#007534')
leftSide.grid(sticky="nsew", row=0, column=0)
rightSide = tk.Frame(mainFrame, bg='#A8D59D')
rightSide.grid(row=0, column=1, sticky="nsew")
tk.Label(leftSide,text='Welcome', fg='white',bg='#007534').grid(row=0, column=0, sticky="n")
tk.Label(rightSide,text='Hello',fg='Black').grid(row=0, column=0)
tk.Button(leftSide,text='Attendance', bg='white', fg='#007534').grid(row=1, column=0)
tk.Button(leftSide,text='Grades', bg='white', fg='#007534').grid(row=2, column=0)
root.grid_columnconfigure(0, weight=1)
root.grid_columnconfigure(1, weight=4)
leftSide.grid_columnconfigure(0, weight=1)
rightSide.grid_columnconfigure(0, weight=1)
root.grid_rowconfigure(0, weight=1)
root.mainloop()

enter image description here

最后,我应该提醒您,所有变量,如mainFrameleftSiderightSide和标签都是None(这是grid()的返回值)。一定要纠正它们,以后可能会遇到问题。你知道吗

相关问题 更多 >