代码之家  ›  专栏  ›  技术社区  ›  Jacques Gaudin

如何在Tkinter TreeView中设置行高?

  •  4
  • Jacques Gaudin  · 技术社区  · 8 年前

    我最近写了一个需要跨平台的小应用程序。我使用Python和Tkinter作为GUI。

    它工作得很好,但最近我买了一台带有hiDPI屏幕的新笔记本电脑,它似乎弄乱了TreeView(见下图)。与行的高度相比,文本高度太大。

    这张照片是从作为来宾运行Windows 7的虚拟机上拍摄的。我必须将文本设置为更大的大小(125%),以便能够在屏幕上阅读(我尝试过的其他程序都可以很好地使用此设置)。

    有没有办法在Tkinter TreeView中设置行的高度?我在文件里没见过这样的东西。

    enter image description here

    2 回复  |  直到 8 年前
        1
  •  10
  •   Novel    8 年前
    s = ttk.Style()
    s.configure('Treeview', rowheight=40) # repace 40 with whatever you need
    
        2
  •  5
  •   WinEunuuchs2Unix    6 年前

    我已经为字体大小设置了变量,希望避免为行高设置变量。因此,我的代码如下所示:

    style = ttk.Style()
    style.configure("Treeview.Heading", font=(None, LARGE_FONT), \
                    rowheight=int(LARGE_FONT*2.5))
    style.configure("Treeview", font=(None, MON_FONTSIZE), \
                    rowheight=int(MON_FONTSIZE*2.5))
    

    什么时候 LARGE_FONT 设置为 14 ,行高设置为 35 . 什么时候 MON_FONTSIZE 设置为 12 ,行高计算为 30 .

    最终结果具有系统字体的正确间距(IMO)。YMMV适用于其他字体系列:

    wman gnome gsettings.png