Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python tkinter scale小部件的未知选项_Python_Tkinter_Ttk_Tkinter Scale - Fatal编程技术网

Python tkinter scale小部件的未知选项

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

我正在编写一个GUI,您必须在其中输入一个数字。我想要一个天平,但它非常符合我的目的。问题是刻度的精度达到了1e-9。这对我来说非常精确。我正在为
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