使用基于刻度值的自定义消息更新标签,Tkinter



所以我有一个只有 2 个小部件、1 个标签和 1 个比例的应用程序。

我想做的是根据刻度的值更新标签的文本,所以文本将是"刻度的值是(x(",其中(x(刻度的值。

当我实例化 2 个小部件时,我尝试使用一个公共变量,但这没有帮助。有什么想法吗?

    firstLine = Frame(root)
    firstLine.pack()
    breakValue = StringVar()
    breakValue.set("Take a break, every 20 minutes")
    workTime = Label(firstLine, textvariable=breakValue)
    workTime.pack(side=self.LEFT)
    workTimeSetter = Scale(firstLine, orient="horizontal")
    workTimeSetter.pack(side=self.LEFT)
    workTimeSetter.set(20)
您可以使用

command执行此操作 - 不确定这是否是最佳方法,但它似乎有效:

from Tkinter import *
root = Tk()
breakValue = StringVar()
def set_label(val):
    breakValue.set("Take a break, every {} minutes".format(val))
firstLine = Frame(root)
firstLine.pack()
workTime = Label(firstLine, textvariable=breakValue)
workTime.pack(side=LEFT)
workTimeSetter = Scale(firstLine, orient="horizontal", command=set_label)
workTimeSetter.pack(side=LEFT)
workTimeSetter.set(20)
root.mainloop()

command自动接收刻度的当前值,因此我们可以在函数中使用它。

相关内容

  • 没有找到相关文章

最新更新