以4k(3840 * 2160)分辨率缩放Tkinter GUI?

时间:2015-12-07 11:14:09

标签: python python-2.7 tkinter tk

我在VirtualBox中使用LinuxMint 17.3 Cinnamon,在本机中使用1920 * 1080分辨率,打开Hi-DPI选项。主机为Windows 10,分辨率为3840 * 2160 尽管在LinuxMint中启用了Hi-DPI选项,但在缩放方面,一些应用程序看起来很舒服,但是python-tk GUI(python2)还没有改变 - 字体很小,更改了字体选项在Cinnamon中,不会改变tk中的字体。有没有办法正确扩展已编写的tk GUI应用程序?

2 个答案:

答案 0 :(得分:10)

tkinter有一个内部缩放系数,用于将点和英寸等测量值转换为像素。您可以使用“tk scaling”命令进行设置。此命令采用一个参数,即一个“点”中的像素数。一个点是1/72英寸,因此缩放因子1.0适用于72DPI显示器。

root = Tk()
root.tk.call('tk', 'scaling', 2.0)

根据a similar question中的评论,这不会影响默认字体,因为它们是在tkinter的上下文之外定义的。如果您在点中指定自己的字体,则应遵循此设置。

scaling命令的official documentation是:

  

设置并查询Tk用于转换的当前比例因子   物理单位之间(例如,点,英寸或毫米)   和像素。 number参数是一个浮点数   指定窗口显示的每个点的像素数。如果   窗口参数被省略,默认为主窗口。如果   number参数被省略,缩放因子的当前值是   回。

     

“点”是等于1/72英寸的测量单位。一个   缩放因子1.0对应于每个点1个像素,即   相当于标准的72 dpi显示器。比例因子为1.25   这意味着每点1.25像素,这是90 dpi的设置   监控;在72 dpi监视器上将比例因子设置为1.25   导致应用程序中的所有内容显示为1.25倍   像往常一样大。缩放因子的初始值设置为   应用程序启动,基于已安装的监视器的属性,   但它可以随时更改。缩放后进行的测量   因子被更改将使用新的比例因子,但它是未定义的   现有小部件是否会动态调整大小   适应新的比例因子。

答案 1 :(得分:0)

您可以使用 Clmage 模块来提高 GUI 渲染的分辨率

相关问题