这是我编写的代码。如您所见,它有一个按钮,单击该按钮会打开一个 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()
关于为什么会发生这种情况以及如何防止这种情况的任何帮助?
最佳答案
如果您在单击按钮之前手动调整窗口大小,您将遇到完全相同的问题。这个问题与最大化/最小化本身无关,它与用户说“我希望窗口是这个大小”并且 tkinter 试图通过不调整大小来兑现这一事实有关违背用户意愿的窗口。
解决方案是在添加或删除小部件之前重置窗口的大小。在 enterG
中的全局语句之后添加以下代码行:
homeP.geometry("")
关于python - Tkinter - 在使用任何小部件之前最大化和最小化窗口,在我使用它们时隐藏小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53170983/