为 tkinter 刻度创建自动刻度标签
Create automatic tick labels for a tkinter scale
我想创建一个带有自动选择的刻度标签的刻度,以便它们适合刻度而不会相互干扰。
这是一个示例代码,用于装箱一个使用 window 调整大小的代码:
from tkinter import *
window = Tk()
scale = Scale(from_=1, to=1000, orient=HORIZONTAL)
scale.pack(fill=X)
window.mainloop()
使用 matplotlib
创建绘图时,默认情况下会发生这种情况,甚至在更改绘图大小时也会更新 window。
有没有办法为 tkinter
比例小部件完成相同的操作?结果应如下所示:
为此,有一个名为 tickinterval
的选项。
来自文档:
Normally, no “ticks” are displayed along the scale. To display periodic scale values, set this option to a number, and ticks will be displayed on multiples of that value. For example, if from_=0.0, to=1.0, and tickinterval=0.25, labels will be displayed along the scale at values 0.0, 0.25, 0.50, 0.75, and 1.00. These labels appear below the scale if horizontal, to its left if vertical. Default is 0, which suppresses display of ticks.
所以:
from tkinter import * # Better to use `import tkinter as tk`
root = Tk()
var = StringVar()
Label(root,textvariable=var).pack()
Scale(root,from_=1, to=25, orient=HORIZONTAL, tickinterval=1, showvalue=0, variable=var, length=1000).pack(fill=X)
root.mainloop()
输出:
有关详细信息,请阅读:21. The Scale widget
然而,您所要求的是一种自动计算算法,tkinter
可以使用该算法调整大小并使 length
适合比例,遗憾的是它不可用 AFAIK,这是最接近的方法我能想到。
我想创建一个带有自动选择的刻度标签的刻度,以便它们适合刻度而不会相互干扰。
这是一个示例代码,用于装箱一个使用 window 调整大小的代码:
from tkinter import *
window = Tk()
scale = Scale(from_=1, to=1000, orient=HORIZONTAL)
scale.pack(fill=X)
window.mainloop()
使用 matplotlib
创建绘图时,默认情况下会发生这种情况,甚至在更改绘图大小时也会更新 window。
有没有办法为 tkinter
比例小部件完成相同的操作?结果应如下所示:
为此,有一个名为 tickinterval
的选项。
来自文档:
Normally, no “ticks” are displayed along the scale. To display periodic scale values, set this option to a number, and ticks will be displayed on multiples of that value. For example, if from_=0.0, to=1.0, and tickinterval=0.25, labels will be displayed along the scale at values 0.0, 0.25, 0.50, 0.75, and 1.00. These labels appear below the scale if horizontal, to its left if vertical. Default is 0, which suppresses display of ticks.
所以:
from tkinter import * # Better to use `import tkinter as tk`
root = Tk()
var = StringVar()
Label(root,textvariable=var).pack()
Scale(root,from_=1, to=25, orient=HORIZONTAL, tickinterval=1, showvalue=0, variable=var, length=1000).pack(fill=X)
root.mainloop()
输出:
有关详细信息,请阅读:21. The Scale widget
然而,您所要求的是一种自动计算算法,tkinter
可以使用该算法调整大小并使 length
适合比例,遗憾的是它不可用 AFAIK,这是最接近的方法我能想到。