为什么tkinter没有意识到这个窗口正在调整大小?

时间:2013-02-25 21:13:26

标签: python python-2.7 window tkinter

当我尝试检测窗口是否使用tkinter调整大小时,它大部分时间都可以正常工作。但是,有一个例外;也就是说,当第一次垂直调整大小并使窗口变大时,没有任何东西被拾取。我看到窗口出现时的初始大小,但如果我试图立即使窗口垂直变大,那么就没有了。但是,如果我试图使其垂直“更高”,以另一种方式调整大小(即使其变小或水平调整大小),那么它可以正常工作。

以下是我正在使用的代码的要点:

from Tkinter import *
main = Tk()
def resize(event):
    print("The new dimensions are:",event.width,"x",event.height)
    window.focus_set()
canvas = Canvas(main, width=850, height=400)
window = Frame(main, width=800, height=10)
window.focus_set()
canvas.bind("<Configure>", resize)
canvas.pack()
canvas.update()
window.pack()
main.mainloop()

我做错了吗? 如果重要的话,我在64位Ubuntu 12.10上使用Python 2.7.3

编辑:当窗口大小高于852x402时,似乎尺寸不正确(水平放大)或根本不显示(垂直放大)。这是我的窗口管理器(即Unity)的问题吗?

1 个答案:

答案 0 :(得分:2)

这是因为画布正在调整大小。您正在画布上设置绑定,但尚未将画布配置为随包含窗口一起增大和缩小。

尝试将画布和框架小部件的背景设置为独特的,你会看到我的意思。

要解决此问题,请尝试在打包小部件时设置expandfill属性。