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

2024-09-28 21:33:50 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个只有2个小部件,1个标签和1个刻度的应用程序。在

我要做的是根据刻度的值更新标签的文本,所以文本应该是“刻度值是(x)”,其中(x)是刻度的值。在

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

    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)

Tags: 实例文本self应用程序部件标签leftside
1条回答
网友
1楼 · 发布于 2024-09-28 21:33:50

您可以使用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自动接收刻度的当前值,因此我们可以在函数中使用它。在

相关问题 更多 >