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

Get tkinter widget size in pixels

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

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

好的,我明白了。我们必须先调用 widget.update(),然后再调用 widget.winfo_height()

通常我按照上述步骤得到正确的尺寸,但这个例子的结果让我很困惑: 从 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