代码之家  ›  专栏  ›  技术社区  ›  Garry

tkinter窗口不够宽,无法显示窗口标题

  •  0
  • Garry  · 技术社区  · 9 年前

    是否有一种“标准”方法来确保显示的窗口足够宽以显示窗口标题?

    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方法来获取根(或文本)框架的宽度时,它们给出的文本大小并不是足以显示整个窗口标题的窗口大小。

    我知道这一定很简单,但我看不出来。

    谢谢

    1 回复  |  直到 9 年前
        1
  •  0
  •   Bryan Oakley    9 年前

    不,没有标准的方法。Tkinter无法知道标题栏上的标题有多长。OS/窗口管理器完全控制窗口的该部分,并且不公开任何与平台无关的获取该信息的方式。

    您不仅需要知道操作系统用于窗口标题的字体,还需要知道标题区域中是否有其他装饰(例如:按钮、图像等)。

    如果您可以假设字体与默认的tkinter字体相同,那么可以使用tkinter的功能来测量给定字体中字符串的长度 measure 字体对象的方法。