How can I measure the width of a string rendering

2020-02-12 13:57发布

问题:

I can do the measure of text with tkFont, but I don't want a root window --> tk.Tk()

回答1:

You did mean to ask: “How can I measure the width of a string rendering via tkFont without creating a window first?”

An the answer is: you can’t. Tk needs it’s root instance to do drawing and such.

you can however create it, measure your text, and immediately dispose it via .delete(). This is so fast that the window doesn’t appear for me.



回答2:

Now I have this, and it works

root = tk.Tk()
font = tkFont.Font(family=fn, size=fs)
w, h = (font.measure(text), font.metrics("linespace"))
root.destroy()