質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

954閲覧

チェックボックスにチェックを入れた際、ボタンの表記を変えたい

fuji36_om

総合スコア8

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2020/09/07 11:55

前提・実現したいこと

チェックボックスにチェックを入れた際、ボタンを押したときにエントリーに入力される文字を
変更することはできましたが、ボタンの表示も同時に変えたい。
現在ボタンに表示されているを文字AAAからBBBに切り替えれるようにしたい。

発生している問題・エラーメッセージ

チェックボックスにチェックを入れた際に文字を
変更できず以下のエラーが起きている

AttributeError: 'NoneType' object has no attribute 'config'

該当のソースコード

python

1#tkinterのインポート 2import tkinter as tk 3 4# ウィンドウを作成 5root = tk.Tk() 6root.title("Hello, World!") 7root.geometry("500x300") 8 9b = tk.Label(text="コントロール画面") 10b.pack() 11 12def btn_click1(): 13 if( var.get() == True): 14 print('BBB') 15 txt_1.insert(tk.END,'BBB') 16 else: 17 print('AAA') 18 txt_1.insert(tk.END,'AAA') 19 20def btn_click2(): 21 if( var.get() == True): 22 print('BBB') 23 txt_2.insert(tk.END,'BBB') 24 else: 25 print('AAA') 26 txt_2.insert(tk.END,'AAA') 27 28def btn_click3(): 29 if( var.get() == True): 30 print('BBB') 31 txt_3.insert(tk.END,'BBB') 32 else: 33 print('AAA') 34 txt_3.insert(tk.END,'AAA') 35 36var = tk.BooleanVar() 37 38def change(): 39 if( var.get() == True): 40 button1.config(text='BBB') 41 button2.config(text='BBB') 42 button3.config(text='BBB') 43 else: 44 button1.config(text='AAA') 45 button2.config(text='AAA') 46 button3.config(text='AAA') 47 48t_btn = tk.Checkbutton(variable=var, text="AAA / BBB",command = change, width=20).place(x=30, y=30) 49button1 = tk.Button(root,text='AAA',command = btn_click1).place(width=80, x=30, y=80) 50button2 = tk.Button(root,text='AAA',command = btn_click2).place(width=80, x=30, y=120) 51button3 = tk.Button(root,text='AAA',command = btn_click3).place(width=80, x=30, y=160) 52 53 54txt_1 = tk.Entry(width=240 ) 55txt_1.place(x=120, y=82) 56 57txt_2 = tk.Entry(width=240 ) 58txt_2.place(x=120, y=122) 59 60txt_3 = tk.Entry(width=240 ) 61txt_3.place(x=120, y=162) 62 63root.mainloop( )

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

python

1button1 = tk.Button(root,text='AAA',command = btn_click1).place(width=80, x=30, y=80)

.place()/.pack()/.grid() 等のメソッドは値を返さないので、None になってます。
一行で繋げて書く場合は、戻り値を受け取ってはいけません。分割しましょう。

python

1button1 = tk.Button(root, text='AAA', command=btn_click1) 2button1.place(width=80, x=30, y=80)

投稿2020/09/07 15:27

teamikl

総合スコア8664

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuji36_om

2020/09/08 06:47

ありがとうございます。 思い付きすらしなかったので、助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問