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。
是否有 '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。