将文本格式化到 Tkinter 进度条
Posted
技术标签:
【中文标题】将文本格式化到 Tkinter 进度条【英文标题】:Formatting Text to the Tkinter Progressbar 【发布时间】:2022-01-19 10:22:30 【问题描述】:我知道根据这个问题将文本添加到进度条:
Displaying percentage in ttk progressbar
这对我有帮助,但我需要对答案进行更多调整。
我需要文本(百分比)出现在进度条的左侧。
为此,我将'side':'left'
添加到Horizontal.TProgressbar.label
的布局格式中。
如下:
style.layout('text.Horizontal.TProgressbar',
[('Horizontal.Progressbar.trough',
'children': [('Horizontal.Progressbar.pbar',
'side': 'left', 'sticky': 'ns')],
'sticky': 'nswe'),
('Horizontal.Progressbar.label', 'side':'left','sticky': '')])
但是,这会将文本移动到最左侧。它与进度条边框重叠,不清晰可读。
-
我需要调整此文本的字体和字体颜色。我们如何改变它?
【问题讨论】:
【参考方案1】:要更改标签和边框之间的间距,您可以在布局中添加填充元素
style.layout('text.Horizontal.TProgressbar',
[('Horizontal.Progressbar.trough',
'children': [('Horizontal.Progressbar.pbar',
'side': 'left', 'sticky': 'ns')],
'sticky': 'nswe'),
('Horizontal.Progressbar.padding', 'side':'left'),
('Horizontal.Progressbar.label', 'side':'left','sticky': '')])
然后用
配置填充style.configure('text.Horizontal.TProgressbar', padding=4)
您可以使用带有font
和foreground
选项的style.configure
更改文本的字体和颜色:
style.configure('text.Horizontal.TProgressbar', foreground="red", font='Arial 20')
在我对Progressbar with Percentage Label? 的回答中有一个创建此类进度条的完整示例。
【讨论】:
这种粘性的 west 和 side 方法将文本向左移动太多,几乎在边界上。使其无法阅读。我们可以与边界和文本开始的地方保持一定距离吗?还是唯一的解决方案是在文本前添加空格? @Meet 我现在意识到我没有正确回答问题的第一部分。我现在找到了一种方法来添加一些填充并编辑了我的答案。 嘿!谢谢这工作。顺便说一句,您究竟是如何创建该布局的?我找不到任何关于如何使用该语法的帮助或文章。 @Meet 我真的不记得了,我从示例中学习了布局的语法,主要是在 SO 上并通过我自己的尝试。您可以使用style.layout(<name>)
查看现有元素的布局,其中<name >
是“TLabel”、“TFrame”,... 您可以使用style.element_names()
获取要在布局中使用的元素列表,使用@987654331 获取它们的选项@.以上是关于将文本格式化到 Tkinter 进度条的主要内容,如果未能解决你的问题,请参考以下文章