动态重新格式化tkinter比例值python 2.7

动态重新格式化tkinter比例值python 2.7,python,tkinter,Python,Tkinter,我想我想做的事情很简单,但显然不是 我想做的是使用tkinter标尺来控制用户可以输入的范围和值 在我的例子中,我想以秒为单位输入一个时间值,并以分:秒的格式显示它,这样任何人都可以理解,比如330秒==5:30 因为这不是scale小部件的标准格式,所以我想做的是在scale小部件旁边显示mm:ss格式的时间 在我的示例代码中,我可以看到比例值发生了变化,但到目前为止,我无法使mm:ss显示随着比例的移动而改变(我必须单击一个按钮以使其更新)。 因为我希望最终的结果尽可能地避免白痴,所以我需要

我想我想做的事情很简单,但显然不是

我想做的是使用tkinter标尺来控制用户可以输入的范围和值

在我的例子中,我想以秒为单位输入一个时间值,并以分:秒的格式显示它,这样任何人都可以理解,比如330秒==5:30

因为这不是scale小部件的标准格式,所以我想做的是在scale小部件旁边显示mm:ss格式的时间

在我的示例代码中,我可以看到比例值发生了变化,但到目前为止,我无法使mm:ss显示随着比例的移动而改变(我必须单击一个按钮以使其更新)。 因为我希望最终的结果尽可能地避免白痴,所以我需要mm:ss显示随滑块动态变化

在这一阶段,我似乎已经用尽了我能找到的所有在线示例,而且它们似乎都没有达到我想要的效果(转换需要额外按下按钮)

我很确定当我知道怎么做的时候我会觉得自己很愚蠢,但是现在我的头因为想弄明白这一点而痛


有人可以分享这种行为的例子吗?

scale小部件有一个
命令
属性,您可以使用该属性在值更改时调用函数。然后,此函数可以将值重新格式化为所需的格式

import Tkinter as tk

class Example(tk.Frame):
    def __init__(self, parent):
        tk.Frame.__init__(self, parent)

        self.scale = tk.Scale(self, orient="horizontal", 
                              from_=0, to=600, 
                              showvalue=False,
                              command=self._on_scale)
        self.scale_label = tk.Label(self, text="")
        self.scale.pack(side="top", fill="x")
        self.scale_label.pack(side="top")

    def _on_scale(self, value):
        value = int(value)
        minutes = value/60
        seconds = value%60
        self.scale_label.configure(text="%2.2d:%2.2d" % (minutes, seconds))

if __name__ == "__main__":
    root = tk.Tk()
    Example(root).pack(fill="both", expand=True);
    root.mainloop()

这将有助于向我们展示您所指的示例代码。这正是我想要的,谢谢。