python - 在 Tkinter Python 中测量字符串的高度?

标签 python python-3.x tkinter

我需要 Tkiner 小部件中字符串的高度(以像素为单位)。它是 Listbox 的一行中的文本。

我知道我可以使用 tkinter.font.Font.measure 测量字符串的宽度。但是我怎样才能得到高度呢? similar question仅主题化宽度而不是高度。

最佳答案

tkf.Font(font=widget['font']).metrics('linespace')

给出给定小部件字体的高度(以像素为单位):

try:                        # In order to be able to import tkinter for
    import tkinter as tk    # either in python 2 or in python 3
    import tkinter.font as tkf
except ImportError:
    import Tkinter as tk
    import tkFont as tkf


if __name__ == '__main__':
    root = tk.Tk()
    widget = tk.Label(root, text="My String")
    widget.pack()
    print(tkf.Font(font=widget['font']).metrics('linespace'))
    tk.mainloop()

另请注意,单行字符串的高度并不取决于其长度,而仅取决于其在特定环境中的字体。

关于python - 在 Tkinter Python 中测量字符串的高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48726956/

相关文章:

python - 使 tkinter 标签按设定的时间间隔刷新,无需输入

python-3.x - lxml 不支持 xpath 上的多个属性过滤器

python - 从脚本运行服务器后 Tkinter 窗口卡住

绘制map()时python梯度下降错误

python - Telegram 获取聊天消息/帖子 - python Telethon

python - 跟踪玩家健康基于文本的游戏 - Python

python - 如何使用 DataFrame 比较两个 CSV 文件并检索不同的单元格?为什么浮点单元格中会出现这么多小数位?

python - 如何在 tkinter 中设置 mac osx 默认按钮

python - 如何在 Python Web 机器人中有效地实现多线程/多处理?

python - 根据条件迭代求和列