tkinter window 宽度不足以显示 window 标题

tkinter window not wide enough to display window title

是否有 'standard' 方法确保显示的 window 宽度足以显示 window 标题?

import tkinter as tk
root = tk.Tk()
root_f = tk.Frame(root)
root.title('Long Window Title Containing Much Text')
text_f = tk.Frame(root_f)
text_l = tk.Label(text_f, text='Short text')

root_f.grid()
text_f.grid()
text_l.grid()

root.geometry('+{}+{}'.format(100, 100))
root.mainloop()
root.quit()

当我使用 winfo 方法获取根(或文本)框架的宽度时,它们给出的是文本的大小,而不是足以显示整个 window 宽度的 window 的大小] 标题.

我知道它必须是简单的东西,但我看不到。

谢谢

不,没有标准方法。 Tkinter 无法知道标题在标题栏上的长度。 OS / window 经理完全控制了 window 的那部分,并且没有公开任何获取该信息的 platform-independent 方式。

你不仅要知道 OS 为 window 标题使用的字体,还要知道是否有任何其他装饰(例如:按钮、图像等)出现在标题区。

如果您可以假设字体与默认的 tkinter 字体相同,您可以使用 tkinter 的能力来测量给定字体中字符串的长度,方法是 measure一种字体 object。