Tkinterを用いたGUIアプリケーションを作成しています。
以下のコードは問題の部分が分かりやすいように簡略化したものです。
真偽値の変数において、そのまま記述した場合はvalueの値が反映され、
関数化したものを呼び出した場合はvalueの値が反映されません。
前者ではチェックされ、後者はチェックされていない状態になります。
元コードではアプリケーションクラスを定義して書き進めていて、
できればクラスメソッドとしてこの処理を行いたいのですが、
どのようにコードを改善すればよいのでしょうか。
ご教授いただけますと幸いです。
Python
1import tkinter as tk 2 3def Function(Application): 4 bln = {} 5 bln['Key'] = tk.BooleanVar(value=True) 6 chk = tk.Checkbutton(Application, variable=bln['Key'], text='Test') 7 chk.pack() 8 9win = tk.Tk() 10win.geometry('300x300') 11app = tk.Frame(win) 12app.pack() 13 14# そのまま記述したもの(値=Trueが反映される) 15bln = {} 16bln['Key'] = tk.BooleanVar(value=True) 17chk = tk.Checkbutton(app, variable=bln['Key'], text='Test') 18chk.pack() 19 20# 関数化したもの(値=Trueが反映されない) 21Function(app) 22 23win.mainloop()
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/04/25 14:34
2022/04/25 14:57
2022/04/25 15:15