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

buh*_*htz 4 python tkinter python-3.x

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

我知道我可以用tkinter.font.Font.measure. 但是我怎样才能得到高度呢?一个类似的问题仅将宽度主题化,而不是高度主题化。

buh*_*htz 6

这可以解决问题。

tkinter.font.Font(font='TkDefaultFont').metrics('linespace')
Run Code Online (Sandbox Code Playgroud)


Nae*_*Nae 6

tkf.Font(font=widget['font']).metrics('linespace')
Run Code Online (Sandbox Code Playgroud)

给出给定小部件字体的高度(以像素为单位):

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()
Run Code Online (Sandbox Code Playgroud)

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