Q&A
実現したいこと
Python Tkinterで他のモジュールのクラス内で作ったラベルの文字を
他のモジュール内の関数でで変更したい
次のコードの例では
modul_b.pyの「class Label_Create」内で作ったラベル「lbl_a」の文字を
同じクラス内で作ったボタンを押し、modul_c内の「def change」の関数で変更したのですが、
どのように書いたら良いでしょうか?
発生している問題・エラーメッセージ
AttributeError: type object 'Label_Create' has no attribute 'lbl_a'
該当のソースコード
modul_a.py
1import tkinter as tk 2import modul_b 3 4def main_screen(): 5 root = tk.Tk() 6 root.title("window") 7 root.geometry("600x600") 8 win = modul_b.Window(root)
modul_b.py
1import tkinter as tk 2import modul_a 3import modul_c 4 5class Window() 6 def __init__(self, master=None): 7 super().__init__(master) 8 self.grid(sticky="nsew") 9 self.create_widgets() 10 self.frm = tk.Frame(self).grid() 11 12 def lbl_cr(self): 13 lbl_cr = Label_Create(self.frm) 14 15class Label_Create(tk.Frame) 16 def __init__(self, master): 17 super().__init__(master) 18 self.grid(sticky="nsew") 19 lbl_a = tk.Label(self,text='').grid() 20 btn = tk.Button(self,text='ボタン',command=modul_c.change).grid()
modul_c.py
1import modul_b 2 3def change(): 4 modul_b.Label_Create. Label_Create.lbl_a["text"] = '文字が変わりました。'
補足情報(FW/ツールのバージョンなど)
Python 3.10
回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2023/02/16 08:28