1

我在业余时间正在开发一个程序,该程序会自动生成一个帕斯卡三角形,其中三角形中的行数取决于用户输入。

我遇到的问题是,随着输入的增加,输出最终会“泄漏”到窗口的两侧。为了解决这个问题,我写了这个:

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)
4

0 回答 0