如何在 Tkinter TreeView 中设置行高?
How can I set the row height in Tkinter TreeView?
最近写了一个小程序,需要跨平台。我使用 Python 和 Tkinter 作为 GUI。
效果很好,但最近我买了一台带 hiDPI 屏幕的新笔记本电脑,它似乎弄乱了 TreeView(见下图)。与行高相比,文本高度太大。
图片取自虚拟机运行 Windows7 做客。我必须将文本设置为更大的尺寸 (125%) 以便能够在屏幕上阅读(我尝试过的所有其他程序都可以使用此设置正常工作)。
有什么方法可以在 Tkinter TreeView 中设置行高吗?我在文档中没有看到类似的内容。
s = ttk.Style()
s.configure('Treeview', rowheight=40) # repace 40 with whatever you need
我已经为字体大小设置了一个变量,并且想避免为行高设置一个变量。所以我的代码看起来像这样:
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:
最近写了一个小程序,需要跨平台。我使用 Python 和 Tkinter 作为 GUI。
效果很好,但最近我买了一台带 hiDPI 屏幕的新笔记本电脑,它似乎弄乱了 TreeView(见下图)。与行高相比,文本高度太大。
图片取自虚拟机运行 Windows7 做客。我必须将文本设置为更大的尺寸 (125%) 以便能够在屏幕上阅读(我尝试过的所有其他程序都可以使用此设置正常工作)。
有什么方法可以在 Tkinter TreeView 中设置行高吗?我在文档中没有看到类似的内容。
s = ttk.Style()
s.configure('Treeview', rowheight=40) # repace 40 with whatever you need
我已经为字体大小设置了一个变量,并且想避免为行高设置一个变量。所以我的代码看起来像这样:
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: