【问题标题】:Tkinter default font is tinyTkinter 默认字体很小
【发布时间】:2020-10-14 22:06:11
【问题描述】:

我正在使用一些使用 tkinter 的库,字体太小我无法阅读(只有几个像素)。这是一个最小的工作示例:

from tkinter import *                                                                                                                           
root = Tk()
myLabel = Label(root, text = 'Hello, world!')
myLabel.pack()
root.mainloop()

工作示例在右侧窗口中生成了一个小小的 hello world:mwe tiny font 图像的其余部分显示 gitk gui 作为大小参考。

有没有办法在不更改代码的情况下在 tkinter 中设置默认字体大小?也可能是dpi设置的问题?

我在 Arch linux 上,i3wm,使用 nvidia 专有驱动程序

【问题讨论】:

  • 当您说“不更改代码”时,您的意思是字面意思吗?如果解决方案只需要添加一两行代码,是否可以接受?
  • 是的,我的字面意思是“不更改代码”,因为这是我通过包管理器安装的一些基于 tkinter 的应用程序。 tkinter 必须从某个系统中获取 linux 上的默认字体。也许是字体配置?但我找不到这方面的任何文档。

标签: python tkinter


【解决方案1】:

我找到了解决问题的方法。 Tkinter 有一种自动确定监视器大小的方法,它会相应地设置一个 tk 比例变量。在我的情况下,缩放值与它应该做的相反 - 更大的缩放值会导致更小的字体大小。我仍然不知道为什么会这样。 我在我的最小工作示例上运行了 strace,发现 tkinter 尝试读取文件 ~/.Tk.tcl,因此我可以将此文件用作配置文件。 将tk scaling 1.0 放入~/.Tk.tcl 为我解决了这个问题。您可以尝试使用缩放值来增加/减少 gui 组件的整体缩放。 查看 strace 它还尝试读取 ~/.Tk.py~/.example.tcl~/.example.py

【讨论】:

    【解决方案2】:

    将此行添加到代码的开头。将helevicta 更改为您要使用的字体,将20 更改为您要使用的字体大小,然后将bold 更改为您想要的任何格式选项(您不必包含任何内容,如果您这样做,您可以添加多个。)这一行将为root 窗口中的任何标签设置字体。

    root.option_add("*Label.Font", "helvetica 20 bold")
    
    

    【讨论】:

      【解决方案3】:
      猜你喜欢
      • 2017-12-19
      • 1970-01-01
      • 2017-11-12
      • 2013-03-05
      • 2019-10-05
      • 1970-01-01
      • 2021-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多