如何在不创建窗口的情况下测量tkFont渲染字符串的宽度?

4 投票
2 回答
2137 浏览
提问于 2025-04-17 00:21

我可以用tkFont来测量文本的大小,但我不想要一个主窗口,也就是不想用tk.Tk()这个东西。

2 个回答

5

现在我有这个,它可以正常工作。

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

你想问的是:“我怎么能在不先创建窗口的情况下,测量通过 tkFont 渲染的字符串宽度?”

答案是:你不能。Tk 需要一个根实例来进行绘图等操作。

不过,你可以先创建一个窗口,测量你的文本,然后立刻通过 .delete() 删除这个窗口。这个过程非常快,以至于我根本看不到窗口出现。

撰写回答