如果我使用参数tkinter.Button
(以字符为单位)定义示例(width=10, height=1)
窗口小部件,然后我想以像素为单位检索它的大小,我该怎么做?
编辑:
我尝试了widget.winfo_height()
和widget.geometry()
,但所有这些函数都返回以字符数定义的高度。我认为可以在一个框架中创建相同的小部件,然后编写frame.winfo_height()
,这将返回以像素为单位的大小,但这不是那么优雅的解决方案。
答案 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