以像素为单位获取tkinter小部件大小

时间:2017-11-26 10:48:29

标签: python tkinter size pixels

如果我使用参数tkinter.Button(以字符为单位)定义示例(width=10, height=1)窗口小部件,然后我想以像素为单位检索它的大小,我该怎么做?

编辑: 我尝试了widget.winfo_height()widget.geometry(),但所有这些函数都返回以字符数定义的高度。我认为可以在一个框架中创建相同的小部件,然后编写frame.winfo_height(),这将返回以像素为单位的大小,但这不是那么优雅的解决方案。

2 个答案:

答案 0 :(得分:4)

好的,我明白了。在致电widget.update()之前,我们必须先致电widget.winfo_height()

答案 1 :(得分:1)

按照上述步骤我通常会得到正确的大小,但是这个例子的结果真的让我感到困惑: 从 tkinter 导入 *

root=Tk()

labelName = Label(root, text='label')
entryName = Entry(root, foreground='red')

labelName.update_idletasks()
entryName.update_idletasks()
wl = labelName.winfo_width()
we = entryName.winfo_width()
print('wl, we: ', we, wl)

wl = labelName.winfo_reqwidth()
we = entryName.winfo_reqwidth()

print('wl, we: ', we, wl)

entryName.insert(0, 'entry.................sajdALSKJDASKDjsc')

labelName.grid(row=0, column=0)
entryName.grid(row=0, column=1)

mainloop() 

输出???:

wl,我们:1 1
wl,我们:124 31