我正try 在应用程序中使用tkinter Scale小部件,每当我设置tickInterval属性时,滑块下方都会显示一个值.

有没有办法在不显示滑块下方的比例值的同时仍指定计时间隔?

我的用例是创建一个非线性滑块,其中的比例值0-6映射到一系列值,如1、4、10、40、100、400、1000.在这种情况下,向用户显示小部件的值是没有意义的.

我的另一种 Select 是使用组合框或一系列单选按钮.

欢迎提出建议.

下面是一个示 routine 序:

import tkinter as tk

def scaleChanged():
   scaleValue = "Value = " + str(var.get())
   label.config(text = scaleValue)

root = tk.Tk()
root.geometry('300x150+100+100')
var = tk.DoubleVar()
scale = tk.Scale( root, orient=tk.HORIZONTAL, from_=0, to=6, showvalue=0,
                  variable = var, length=180, tickinterval=30)
scale.pack(anchor = tk.CENTER, pady=(20,10))

button = tk.Button(root, text = "Fetch Scale Value", command = scaleChanged)
button.pack(anchor = tk.CENTER, pady=10)

label = tk.Label(root)
label.pack()

root.mainloop()

Output

推荐答案

您可以设置tickInterval=0(或将其删除),以便它不会在滑块下方显示值.然后,当您获取按钮中的滑块的值时,使用0:1的映射...6:1000并将其显示在比例窗口中.

以下是完整的脚本:

import tkinter as tk

def scaleChanged():
   mapping={0:1, 1:4, 2:10, 3:40, 4:100, 5:400, 6:1000}
   scaleValue = "Value = " + str(mapping.get(var.get()))
   label.config(text = scaleValue)


root = tk.Tk()
root.geometry('300x150+100+100')
var = tk.DoubleVar()
scale = tk.Scale( root, orient=tk.HORIZONTAL, from_=0, to=6, showvalue=0,
                  variable = var, length=180, tickinterval=0)
scale.pack(anchor = tk.CENTER, pady=(20,10))

button = tk.Button(root, text = "Fetch Scale Value", command = scaleChanged)
button.pack(anchor = tk.CENTER, pady=10)

label = tk.Label(root)
label.pack()

root.mainloop()

示例输出:

enter image description here

Python相关问答推荐

Flask:如何在完整路由代码执行之前返回验证

如何将不同长度的新列添加到现有的框架中

如何在矩阵上并行化简单循环?

在Python中管理多个OpenGVBO和VAO实例

Polars:使用列值引用when / then表达中的其他列

如何根据日期和时间将状态更新为已过期或活动?

如何在Deliveryter笔记本中从同步上下文正确地安排和等待Delivercio代码中的结果?

如何使用pandasDataFrames和scipy高度优化相关性计算

Python上的Instagram API:缺少client_id参数"

聚合具有重复元素的Python字典列表,并添加具有重复元素数量的新键

切片包括面具的第一个实例在内的眼镜的最佳方法是什么?

如何请求使用Python将文件下载到带有登录名的门户网站?

如何将多进程池声明为变量并将其导入到另一个Python文件

Pandas—在数据透视表中占总数的百分比

从嵌套的yaml创建一个嵌套字符串,后面跟着点

实现神经网络代码时的TypeError

以逻辑方式获取自己的pyproject.toml依赖项

numpy.unique如何消除重复列?

如何在两列上groupBy,并使用pyspark计算每个分组列的平均总价值

在用于Python的Bokeh包中设置按钮的样式