我的例程将按钮添加到tkinter中的窗口。在某些时候,窗口变得比我的实际屏幕更大(高度),我不能访问底部的按钮了。蟒蛇Tkinter:如何禁止一个窗口变得比屏幕尺寸更大
演示代码:
from Tkinter import *
n_buttons = 20 # <- change this as you wish for testing the code
def generate_buttons(n):
for i in range(n):
button = Button(myframe, text="Button Clone", height=4)
button.grid(row=i)
root = Tk()
myframe = Frame(root)
myframe.pack()
generate_buttons(n=n_buttons)
root.mainloop()
作为第一次尝试,我把下面的代码到我的循环:
if root.winfo_height() > root.winfo_screenheight():
print("I'm full!")
break
但是1)它不工作,2)我强烈希望一个解决方案,用于检查该窗口是否可以在之前采用另一个按钮,以便我不必在之后将其销毁。
在我的真实代码中,放置为2D网格的按钮以及对窗口过载的第一反应是增加帧中的列数,然后减小所有按钮的高度。同样,如果我必须重新生成所有按钮,直到满足所有要求,那将会很糟糕。如果在第一个按钮创建之前,您可以帮助我解决问题,那么这将非常好。谢谢!
那么,你希望你的循环在没有按钮空间的情况下立即退出? –
@BryanOakley:这将是“最低目标”。更好:让代码检查按钮的预期数量是否会超过窗口大小,并在进入循环之前做出相应的反应(例如减小按钮大小或打印错误)。 – offeltoffel
滚动条是不是在你的情况下的选项? – PRMoureu