我在业余时间正在开发一个程序,该程序会自动生成一个帕斯卡三角形,其中三角形中的行数取决于用户输入。
我遇到的问题是,随着输入的增加,输出最终会“泄漏”到窗口的两侧。为了解决这个问题,我写了这个:
def resize_window():
newWidth = app.outPut.winfo_width()
if (newWidth > 275):
root.geometry(str(newWidth) + "x400+" + screenMid)
if (newWidth < 275):
root.geometry("275x400+" + screenMid)
这会根据输出的宽度改变窗口的宽度,问题是 newWidth 的值总是落后一个值。例如,如果标签是 10 像素宽,并且我在其中输入了一些使其变为 14 的内容,我仍然会得到 10,但如果我要做一些使其变为 12 的事情,那么我将得到 14,依此类推。
有没有更好的方法来获取 tkinter 中标签的像素宽度?
编辑:
我找到了对代码进行以下更改的问题的答案:
def resize_window():
root.update_idletasks()
newWidth = app.outPut.winfo_width()
if (newWidth > 275):
root.geometry(str(newWidth) + "x400+" + screenMid)
if (newWidth < 275):
root.geometry("275x400+" + screenMid)