我的例程將按鈕添加到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