PythonのTkinterでボタンの状態を取得、有効・無効の切り替えを実装する

スポンサーリンク

このPythonチュートリアルでは、Tkinterを使ってボタンの状態を調べたり変更したりする方法を学びます。

まず始めに、TkinterをPython環境にインストールする必要があります。

Tkinterのボタンを押すと、その状態を変更することができるグラフィカルユーザインターフェイスのウィンドウが表示されるでしょう。

まず、PythonのTkinterで状態がどうなっているかを把握する必要があります。

Tkinterは独自のグラフィカルユーザインタフェース(GUI)を設計することができるPythonのパッケージです。

Tkinterのボタンには、通常状態と無効状態の2つの状態があります。

通常の状態では、ボタンを押すことができますが、無効の状態では、ボタンをクリックすることができません。

そこで、この記事では、Tkinterのボタンの状態について学びます。

スポンサーリンク

ボタン状態の実装

それでは、提供された課題のコーディングに取りかかりましょう。

まず、Tkinter パッケージをインポートしてください。

次に、appオブジェクトを作成し、ウィンドウサイズを200 x 200に設定します。

1
2
3
import tkinter as tk
app = tk.Tk()
app.geometry("200x200")

ボタン1とボタン2という2つのボタンを追加します。

アプリウィンドウに表示されるアプリとして引数を与え、text attributes に “Python Button 1” と設定することで名前を付けます。

ボタン1の状態に値tkを与えることで、ボタン1が無効であることを示すことにします。

DISABLEDです。

同様に、ボタン2には、何らかの関数名として、そのボタンを押すと、以下の関数が実行されるように命令を与えることにします。

関数として、switchButtonStateを用意します。

その関数は、後で定義します。

また、この2つのボタンを配置するためにパックを使用します。

1
2
3
4
button1 = tk.Button(app, text="Python Button 1",state=tk.DISABLED)
button2 = tk.Button(app, text="EN/DISABLE Button 1",command = switchButtonState)
button1.pack()
button2.pack()

下の関数は、ボタンの状態を変更します。

ボタンをクリックすると、button1 の状態が正常であれば、disabled に変更され、そうでなければ、正常のままとなります。

1
2
3
4
5
def switchButtonState():
    if (button1['state'] == tk.NORMAL):
        button1['state'] = tk.DISABLED
    else:
        button1['state'] = tk.NORMAL

最後に、app.mainloop()を使ってアプリを実行させる必要があります。

app.mainloop()

Button2をクリックすると、そのButton1の状態を変更することができるようになりました。

Python tkinter を使ってボタンの状態を変更する

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import tkinter as tk
 
def switchButtonState():
    if (button1['state'] == tk.NORMAL):
        button1['state'] = tk.DISABLED
    else:
        button1['state'] = tk.NORMAL
 
app = tk.Tk()
app.geometry("200x200")
button1 = tk.Button(app, text="Python Button 1",state=tk.DISABLED)
button2 = tk.Button(app, text="EN/DISABLE Button 1",command = switchButtonState)
button1.pack()
button2.pack()
 
app.mainloop()

出力画面

Change Btn States Output 1
Change Btn States Output 2

まとめ

ボタンの状態を変更する方法を学びました。

このチュートリアルはいかがでしたか?いずれにせよ、以下のチュートリアルをご覧になることをお勧めします。

  1. Python Tkinterチュートリアル。Tkinterのフォントクラスについて
  2. Python Tkinterプロジェクト: 携帯電話番号ランダム生成器
  3. Tkinter StringVarとその例 – Tkinterチュートリアル
  4. Tkinter IntVar – Tkinterチュートリアル(例題付き)

お時間を割いていただき、ありがとうございました! 何か新しいことを学べたでしょうか!

タイトルとURLをコピーしました