[解決済み】TKinterでボタンを無効にする/有効にする
2022-02-13 05:19:14
質問
スイッチのようなボタンを作りたいのですが、無効化ボタンをクリックすると、そのボタンが無効になります。 を無効にします(動作します)。そして、もう一度押せば、また有効になります。
if, elseなどを試しましたが、うまくいきませんでした。 以下はその例です。
from tkinter import *
fenster = Tk()
fenster.title("Window")
def switch():
b1["state"] = DISABLED
#--Buttons
b1=Button(fenster, text="Button")
b1.config(height = 5, width = 7)
b1.grid(row=0, column=0)
b2 = Button(text="disable", command=switch)
b2.grid(row=0,column=1)
fenster.mainloop()
解決方法は?
Tkinter
Button
は3つの状態を持ちます。
active, normal, disabled
.
を設定します。
state
オプションを
disabled
を指定すると、ボタンがグレーアウトして反応しなくなります。これには、値
active
マウスがその上にあるとき、デフォルトは
normal
.
これを使えば、ボタンの状態をチェックして、必要なアクションを起こすことができます。以下は、動作するコードです。
from tkinter import *
fenster = Tk()
fenster.title("Window")
def switch():
if b1["state"] == "normal":
b1["state"] = "disabled"
b2["text"] = "enable"
else:
b1["state"] = "normal"
b2["text"] = "disable"
#--Buttons
b1 = Button(fenster, text="Button", height=5, width=7)
b1.grid(row=0, column=0)
b2 = Button(text="disable", command=switch)
b2.grid(row=0, column=1)
fenster.mainloop()
関連
-
PythonによるLeNetネットワークモデルの学習と予測
-
pythonを使ったオフィス自動化コード例
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
[解決済み】RuntimeWarning: invalid value encountered in double_scalars で numpy の除算ができない。
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み】TypeError: re.findall()でバイトのようなオブジェクトに文字列パターンを使用することはできません。)
-
[解決済み】"No JSON object could be decoded "よりも良いエラーメッセージを表示する。
-
[解決済み】ValueError: pickleプロトコルがサポートされていません。3、python2 pickleはpython3 pickleでダンプしたファイルを読み込むことができない?
-
[解決済み】Flaskのテンプレートが見つからない【重複あり
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
pythonを使ったオフィス自動化コード例
-
python call matlab メソッドの詳細
-
PythonによるExcelファイルの一括操作の説明
-
[解決済み】なぜ「LinAlgError: Grangercausalitytestsから「Singular matrix」と表示されるのはなぜですか?
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み】socket.error: [Errno 48] アドレスはすでに使用中です。
-
[解決済み】csv.Error:イテレータはバイトではなく文字列を返すべき
-
[解決済み】終了コード -1073741515 (0xC0000135)でプロセス終了)
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")