【发布时间】:2021-12-07 14:06:17
【问题描述】:
我的目标是使文本框的右边缘适合文本的末尾。这在使用TkFixedFont 时会自动发生,但在使用TkDefaultFont(这是我想使用的)时,末尾会添加尾随空格。这是没有尾随空格的样子,TkFixedFont:
请注意尾随空格是最小的。我想要同样的几乎没有尾随空格,但是在使用 TkDefaultFont 时。
以下是我的代码的最小示例:
from tkinter import *
root = Tk()
myText = 'sample text'
text = Text(root, bg='#c2d9ff',
font='TkDefaultFont',
height=1, width=len(myText)
)
text.insert(INSERT, myText)
text.place(x=0,y=0)
root.mainloop()
我已经搜索了大约两个小时,以查找与间距、尾随空格、小部件类型(例如标签与文本等)、小部件选项等相关的所有内容,但遗憾的是一无所获。
它似乎与文本的长度成正比,我无法弄清楚。使用上面的代码,当myText = 'Some text goes here'时,尾随间距为:
但是当我放一个较长的文本字符串时,尾随空格似乎按比例增加:
任何关于如何删除尾随空格的建议将不胜感激!
【问题讨论】:
-
你不能使用
Label吗?至于为什么会发生这种情况,可能是因为您没有使用等宽字体(例如“Courier New”或看似“TkFixedFont”),这意味着它会计算字符的平均宽度并使用它来计算空间,所以如果你只使用最宽的字符,它应该适合 -
@Matiiss 我最初使用
Label,但后来改用Text,因为我需要使用标签来更改文本中字符子集的颜色。不幸的是,对我来说仍然没有意义。
标签: python tkinter tkinter-text