Mir*_*j50 5 python window tkinter python-3.x
这是我写的代码.正如您所看到的,它有一个按钮,当点击时会打开Text一个可以输入内容的位置.它工作正常,如果单击按钮,窗口将调整大小.
但是我注意到,如果我在启动程序后最大化并最小化窗口(即我做的第一件事就是最大化并最小化窗口),那么窗口不会调整大小以适应整个框架(点击时按钮)和我的小部件被隐藏.
from tkinter import *
def Home():
global homeP
homeP = Tk()
homeP.title('Grades')
enterButton = Button(homeP, text='Enter Grades', bg='blue', fg='white', command=enterG)
enterButton.grid(row=1, column=0, padx=(5,5), pady=(5,2), sticky="e")
homeP.mainloop()
curFrame = ''
def enterG():
global homeP
global eGrade
global curFrame
if curFrame == 'e':
return
if 'eGrade' not in globals(): #Prevent frames from stacking up on one another
eGrade = Frame(homeP)
enterGrades = Text(eGrade, width=64, height=10)
enterGrades.grid(row=0, column=0)
eGrade.grid(row=2, column=0, columnspan=2, padx=(10,10), pady=(1,5))
else:
eGrade.grid(row=2, column=0, columnspan=2, padx=(10,10), pady=(1,5))
curFrame = 'e'
# for name, value in globals().copy().items():
# print(name, value)
Home()
Run Code Online (Sandbox Code Playgroud)
有关为什么会发生这种情况以及如何防止这种情况的任何帮助?
如果您在单击按钮之前手动调整窗口大小,则会遇到完全相同的问题。这个问题与最大化/最小化本身无关,它与用户说过“我希望窗口是这个大小”这一事实有关,并且 tkinter 试图通过不违背用户意愿调整窗口大小来尊重这一点。
解决方案是在添加或删除小部件之前重置窗口的大小。在 中的全局语句之后添加以下代码行enterG:
homeP.geometry("")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
179 次 |
| 最近记录: |