2017-05-26 79 views
0

因此,我只有2個小部件,1個標籤和1個比例的應用程序。根據比例值更新標籤和自定義消息,Tkinter

我想要做的是根據刻度值更新標籤的文本,所以文本將是「刻度的值是(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) 
+1

告訴我們你的代碼 – asongtoruin

+0

@ason​​gtoruin沒什麼特別的,只有2個部件。我更新了。 – Greekdev

回答

1

你可以用做一個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自動接收檔位的電流值,因此我們可以使用它在我們的功能。

+0

哇,我不知道那個命令是自動傳遞參數的。謝謝,這就是我一直在尋找的! – Greekdev