【问题标题】:Formatting Text to the Tkinter Progressbar将文本格式化到 Tkinter 进度条
【发布时间】:2022-01-19 10:22:30
【问题描述】:

我知道根据这个问题将文本添加到进度条:

Displaying percentage in ttk progressbar

这对我有帮助,但我需要对答案进行更多调整。

  1. 我需要文本(百分比)出现在进度条的左侧。

    为此,我将'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. 我需要调整此文本的字体和字体颜色。我们如何改变它?

【问题讨论】:

    标签: python-3.x tkinter progress-bar


    【解决方案1】:
    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)
      
    2. 您可以使用带有fontforeground 选项的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 获取它们的选项@.
    猜你喜欢
    • 2014-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    • 2011-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多