我想在进度条的侧面绘制刻度线。
示例:
from tkinter import *
from tkinter import ttk
root = Tk()
mainframe = ttk.Frame(root, padding="3 3 12 12")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
TickValue=15
#TickValue=85
ttk.Label(mainframe, text='%2i-' % TickValue).grid(row=1, column=1, sticky=(N,E), pady=(100-TickValue-13))
pbar= ttk.Progressbar(mainframe, value=15, orient=VERTICAL, length=100)
pbar.grid(row=1, column=2, sticky=(N, W))
root.mainloop()
TickValue=85 看起来不错,但 TickValue=15 似乎将行的高度推向南。 window 有一个又大又丑的边框。我怎样才能防止这种情况发生?
(我的代码主要是从 http://www.tkdocs.com/tutorial/firstexample.html 复制粘贴的)
最佳答案
该行的大小正在增加,因为默认情况下,pady
在小部件的上方和下方添加了填充。当 TickValue
为 15 时,pady
为 72,单元格总高度为 144 加上实际标签的高度。您可以通过将两个元素元组传递给参数来独立指定顶部和底部填充。
改变
pady=(100-TickValue-13)
至
pady=(100-TickValue-13, 0)
现在应该只有顶部填充,没有底部填充。
关于python - 如何防止 Tk 添加空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30030470/