如何在Tkinter TreeView中设置行高?

时间:2018-01-24 22:08:38

标签: python tkinter treeview hidpi

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

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

图片来自运行Windows 7的虚拟机作为访客。我必须将文本设置为更大的尺寸(125%)以便能够在屏幕上阅读(我尝试使用此设置正常工作的每个其他程序)。

有没有办法在Tkinter TreeView中设置行的高度?我在文档中没有看到类似的东西。

enter image description here

2 个答案:

答案 0 :(得分:4)

s = ttk.Style()
s.configure('Treeview', rowheight=40) # repace 40 with whatever you need

答案 1 :(得分:0)

我已经为字体大小设置了变量,并且希望避免为行高设置变量。所以我的代码看起来像这样:

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