Python tkinter scale小部件的未知选项
我正在编写一个GUI,您必须在其中输入一个数字。我想要一个天平,但它非常符合我的目的。问题是刻度的精度达到了1e-9。这对我来说非常精确。我正在为Python tkinter scale小部件的未知选项,python,tkinter,ttk,tkinter-scale,Python,Tkinter,Ttk,Tkinter Scale,我正在编写一个GUI,您必须在其中输入一个数字。我想要一个天平,但它非常符合我的目的。问题是刻度的精度达到了1e-9。这对我来说非常精确。我正在为tkinter使用ttk扩展。我已经尝试了一些方法,但我看到有一个用于刻度的数字选项,当有StringVar()时,它会留下数字,但不起作用,它无法识别该选项。我想去图书馆看看,但什么也找不到,太复杂了 下面是我的代码是如何形成的: scaleValue = StringVar() scale = ttk.Scale(content, orient=H
tkinter
使用ttk
扩展。我已经尝试了一些方法,但我看到有一个用于刻度的数字选项,当有StringVar()
时,它会留下数字,但不起作用,它无法识别该选项。我想去图书馆看看,但什么也找不到,太复杂了
下面是我的代码是如何形成的:
scaleValue = StringVar()
scale = ttk.Scale(content, orient=HORIZONTAL, from_=1, to=5, variable=scaleValue, length=150, digits=1) # here digits ins't recongnised
scale.grid(column=x, row=y)
scaleValueLabel = ttk.Label(content, textvariable=scaleValue)
scaleValueLabel.grid(column=x', row=y')
以下是文件:
一个整数,指定在将刻度值转换为字符串时应保留多少位有效数字。
数字
是仅对tk.Scale
可用的参数。如果您切换到使用它,那么您的代码将正常工作:
scale = tk.Scale(root, orient=tk.HORIZONTAL, from_=1, to=5, variable=scaleValue, length=150, digits=5)
但是如果您真的想使用ttk.Scale
,您可以使用不同的方法。您可以跟踪变量的更改,先处理值,然后传递回标签,而不是在标签中使用文本变量
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
scaleValue = tk.DoubleVar()
scale = ttk.Scale(root, orient=tk.HORIZONTAL, from_=1, to=5, variable=scaleValue, length=150) # here digits ins't recongnised
scale.grid(column=0, row=0)
scaleValueLabel = tk.Label(root, text="0")
scaleValueLabel.grid(column=0, row=1)
def set_digit(*args):
scaleValueLabel.config(text="{0:.2f}".format(scaleValue.get()))
scaleValue.trace("w", set_digit)
root.mainloop()
digits
参数用于tk.Scale
但不用于ttk.Scale
。然后我可以在tk小部件和ttk小部件之间切换吗?还有其他的区别吗?两者在造型和外观上都有区别。还有一些选项彼此不可用-但如果您喜欢它的外观,仍然可以使用ttk.Scale
。