tkinter 中的文本拒绝左对齐

问题描述 投票:0回答:1

我有一些代码可以输出一些质谱数据统计数据,例如

    r43_header_label = tk.Label(stats_frame, text='4/3 Ratio')
    r43_header_label.config(font=('System', 20, 'bold'))
    r43_header_label.pack()
    if analysis.ratio43_t0int > 0.01:
        r43_t0int_label  = tk.Label(stats_frame, text=f'  t₀: {analysis.ratio43_t0int:.3f} ± {analysis.ratio43_uncert:.3e}', anchor='w', justify='left')
    else:
        r43_t0int_label  = tk.Label(stats_frame, text=f'  t₀: {analysis.ratio43_t0int:.3e} ± {analysis.ratio43_uncert:.3e}', anchor='w', justify='left')
    r43_t0int_label.pack()
    r43_t0err_label  = tk.Label(stats_frame, text=f'  error: {analysis.ratio43_puncert:.3f}%', anchor='w', justify='left')
    r43_t0err_label.pack()

我认为将文本锚定到

'w'
est 和使用
justify='left'
肯定会让 tkinter 相信我希望文本左对齐,但是,这是结果的示例,它明显居中。

除了 +/- 误差远低于 % 误差这一事实之外(我也在努力解决这个问题),我做错了什么?

更好的是,我怎样才能让文本左对齐并且数字都以整齐的行开始,例如

t0:       0.75
error:    2.356%
mean:     1.5

python tkinter
1个回答
0
投票

为每个标签的

pack
调用适当设置填充选项应该使它们正确对齐

r43_header_label.pack(fill='x')
...
r43_t0int_label.pack(fill='x')
...
r43_t0err_label.pack(fill='x')

如果您想要两列数据,其中每行都有一个名称标签和一个关联值,一种简单但幼稚的方法是将两个标签封装在

Frame
中,并相应地
pack

© www.soinside.com 2019 - 2024. All rights reserved.