我在VirtualBox中使用LinuxMint 17.3 Cinnamon系统,分辨率为1920*1080,并开启了Hi-DPI选项。宿主机是Windows 10系统,分辨率为3840*2160。
尽管已经在LinuxMint中开启了Hi-DPI选项,但某些应用程序的缩放效果仍不理想,特别是python-tk GUI(Python2)字体大小过小,即使在Cinnamon中更改了字体选项也不能改变tk中的字体。是否有方法可以正确缩放已编写的tk GUI应用程序?
我在VirtualBox中使用LinuxMint 17.3 Cinnamon系统,分辨率为1920*1080,并开启了Hi-DPI选项。宿主机是Windows 10系统,分辨率为3840*2160。
尽管已经在LinuxMint中开启了Hi-DPI选项,但某些应用程序的缩放效果仍不理想,特别是python-tk GUI(Python2)字体大小过小,即使在Cinnamon中更改了字体选项也不能改变tk中的字体。是否有方法可以正确缩放已编写的tk GUI应用程序?
tkinter有一个内部缩放因子,用于将像点和英寸这样的测量单位转换为像素。您可以使用"tk scaling"命令设置它。该命令需要一个参数,即"point"中的像素数。一个点是1/72英寸,因此在72DPI显示器上适合使用1.0作为缩放因子。
root = Tk()
root.tk.call('tk', 'scaling', 2.0)
根据类似问题中的评论,这不会影响默认字体,因为它们在tkinter的上下文之外定义。如果您以点为单位指定自己的字体,则应遵守此设置。
scaling
命令的官方文档如下:Clmage
模块来提高 GUI 渲染的分辨率。