如何使 Tkinter Scale 从 0 到 100 计数到 0

问题描述 投票:0回答:2

我想创建一个包含 Tkinter Scale 的 Python3 程序。我希望它以百分比形式从 0(左)到 100(中)再回到 0(右)。如何在不破坏代码的情况下去掉“-”? 这是我到目前为止得到的:

这是我到目前为止得到的:

#!/usr/bin/python3

import tkinter as tk
from tkinter import ttk
...
scale = tk.Scale(root, from_=-100, to=100, orient="horizontal", length=300, sliderlength=10)
...

它几乎可以满足我的要求,但我想从 0 数到 100,然后再数到 0。

python tkinter slide
2个回答
0
投票

如果要自定义 Tkinter Scale 小部件的显示以显示从 100 到 0 再回到 100 的百分比值,可以使用

from_
to
选项。以下是 Python3 程序的示例代码:

import tkinter as tk

def scale_changed(value):
    # Do something with the scaled value
    print(f"Scaled Value: {value}%")

# Create the main window
root = tk.Tk()
root.title("Percent Scale")

# Create a scale widget
scale = tk.Scale(root, from_=100, to=0, orient=tk.HORIZONTAL, command=scale_changed)
scale.pack(pady=20)

# Start the Tkinter event loop
root.mainloop()

在此代码中,

from_
选项设置为100,
to
选项设置为0。这将创建一个水平从100到0的缩放小部件。每当比例值发生变化时,都会调用
scale_changed
函数,您可以修改它以满足您的需要。

请根据您的具体要求随意调整代码。


0
投票

您可以直接在附加到

Scale
小部件的命令参数的 lambda 函数中处理转换。从技术上讲,比例仍将从 0 到 200 运行,但每当滑块移动时,该值都会动态转换到所需的范围(100 到 0 到 100)。

import tkinter as tk

root = tk.Tk()
root.title("Custom Scale")

# Create the scale and handle value transformation in a lambda function
scale = tk.Scale(root, from_=0, to=200, orient="horizontal", length=300, sliderlength=10,
                 command=lambda value: print(100 - abs(100 - int(value))))

scale.set(100)  # Initialize at the middle position
scale.pack()

root.mainloop()
© www.soinside.com 2019 - 2024. All rights reserved.