在Tkinter Python中测量字符串的高度?

时间:2018-02-11 00:12:29

标签: python python-3.x tkinter

我需要Tkiner小部件中字符串像素的高度。它是Listbox的行中的文本。

我知道我可以使用tkinter.font.Font.measure来衡量字符串的宽度。但是我怎样才能达到高度? similar question只有宽度而不是高度。

2 个答案:

答案 0 :(得分:3)

这样就可以了。

tkinter.font.Font(font='TkDefaultFont').metrics('linespace')

答案 1 :(得分:3)

tkf.Font(font=widget['font']).metrics('linespace')

给出给定小部件字体的高度(

try:                        # In order to be able to import tkinter for
    import tkinter as tk    # either in python 2 or in python 3
    import tkinter.font as tkf
except ImportError:
    import Tkinter as tk
    import tkFont as tkf


if __name__ == '__main__':
    root = tk.Tk()
    widget = tk.Label(root, text="My String")
    widget.pack()
    print(tkf.Font(font=widget['font']).metrics('linespace'))
    tk.mainloop()

另请注意,单行字符串的高度不依赖于其长度,而只取决于特定环境中的字体。