2017-05-26 13 views
0

私は2つのウィジェット、1つのラベルと1つのスケールしか持たないアプリケーションを持っています。Scaleの値である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

関連する問題