Jac*_*din 3 python treeview tkinter hidpi
我最近写了一个需要跨平台的小应用程序。我使用 Python 和 Tkinter 作为 GUI。
它工作得很好,但最近我买了一台带有 hiDPI 屏幕的新笔记本电脑,它似乎弄乱了 TreeView(见下图)。与行的高度相比,文本高度太大。
该图片取自以访客身份运行 Windows 7 的虚拟机。我必须将文本设置为更大的尺寸 (125%) 才能在屏幕上阅读(我尝试过的所有其他程序都可以在此设置下正常工作)。
有没有办法在 Tkinter TreeView 中设置行的高度?我在文档中没有看到类似的内容。
我已经有一个字体大小的变量设置,并且希望避免设置行高的变量。所以我的代码如下所示:
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))
Run Code Online (Sandbox Code Playgroud)
当LARGE_FONT设置为时14,行高设置为35。当MON_FONTSIZE设置为时12,行高计算为30。
最终结果具有系统字体的正确间距(IMO)。YMMV 对于其他字体系列:
s = ttk.Style()
s.configure('Treeview', rowheight=40) # repace 40 with whatever you need
Run Code Online (Sandbox Code Playgroud)