2017-03-22 29 views
3

ユーザーがチェックボタンをクリックしたときに、Tkinterラベルの色を変更しようとしています。私は関数を正しく書いて、それをコマンドパラメータに接続するのに問題があります。ここでTkinterラベルの色をプログラム的に変更する方法は?

は私のコードです:

import Tkinter as tk 

root = tk.Tk() 
app = tk.Frame(root) 
app.pack() 

label = tk.Label(app, bg="white", pady=5, font=(None, 1), height=20, width=720) 
checkbox = tk.Checkbutton(app, bg="white", command=DarkenLabel) 
label.grid(row=0, column=0, sticky="ew") 
checkbox.grid(row=0, column=0, sticky="w") 

def DarkenLabel(): 
    label.config(bg="gray") 

root.mainloop() 

command=DarkenLabelは、機能DarkenLabelへの参照を見つけることができない、あなたのコードでは、あなたに

+0

正常に動作します。コマンド変数として使用する前に、 'DarkenLabel'関数を移動するだけで済みます。スクリプトが実行されていない、またはスクリプトを実行しているときに例外が発生していますか? –

+0

本当に簡単! –

答えて

5

ありがとうございます。したがって、その行の上に関数を定義する必要がありますので、コードを次のように使用することができます:

import Tkinter as tk 


def DarkenLabel(): 
    label.config(bg="gray") 

root = tk.Tk() 
app = tk.Frame(root) 
app.pack() 

label = tk.Label(app, bg="white", pady=5, font=(None, 1), height=20, width=720) 
checkbox = tk.Checkbutton(app, bg="white", command=DarkenLabel) 
label.grid(row=0, column=0, sticky="ew") 
checkbox.grid(row=0, column=0, sticky="w") 
root.mainloop() 

希望すると助かります!

+0

さて、私はこのようなクールでシンプルな解決策を模索し、ttkなどのさまざまなアイデアをコーディングしました。ここでは、「救済」がもう役に立たないラベルを編集しました...しかし、あなたのヒントは私の晩を作りました。 Thx +1 – Semo

関連する問題