2016-10-30 20 views
-1

これは私のベースコードです。私はPython 3.4を使っています。ボタン1はアクティブ、ボタン2はアクティブではありません。ボタン1の機能をクリックすると、両方のボタンの状態を変更する必要があります - B1はアクティブではなく、B2はアクティブになります。tkinterの状態ボタンの変更

戻る。 B2が機能し、ボタンの状態がプログラムの開始に変わったとき、B2はアクティブであり、B1は非アクティブである。

どうすればいいですか?

from tkinter import * 

root = Tk() 

b1 = Button(root, text='button 1', bg='black', 
      fg='green').pack(side=LEFT, fill=BOTH, expand=1, padx=5, pady=5) 

b2 = Button(root, text='button 2', bg='black', 
      fg='red', state='disabled').pack(side=LEFT, fill=BOTH, expand=1, padx=5, pady=5) 

root.mainloop() 
+0

ところで:。 'VAR =ウィジェットは、()パック()' VAR =ウィジェット() 'と' var.pack() ''に変換 – furas

+0

使用 'ボタン(...、コマンド= function_name_without_() ) ' – furas

答えて

0

まずあなたがウィジェットにアクセスするために

var = Widget() 
var.pack() 

var = Widget().pack()を変更する必要があります。

そして、command=を使用してボタンに機能を割り当てることができます。

import tkinter as tk 

def change_1(): 
    b1['state'] = tk.DISABLED 
    b2['state'] = tk.NORMAL 

def change_2(): 
    b1['state'] = tk.NORMAL 
    b2['state'] = tk.DISABLED 

root = tk.Tk() 

b1 = tk.Button(root, text='Button 1', command=change_1) 
b1.pack() 

b2 = tk.Button(root, text='Button 2', command=change_2, state=tk.DISABLED) 
b2.pack() 

root.mainloop() 
+0

もう1つの質問があります:ワンクリックですぐに2つのコマンドを同時に実行できますか?私のアプリからの両方のボタンはallready機能を持っています。彼らはcommand = doSomethingを行い、ここで書かれたものは 'doSomething'関数の中でコマンド – guest013

+0

' change_1'を実行していますか? – furas

+0

または 'change_1'の中で' doSomething'関数を実行してください – furas

関連する問題