前提・実現したいこと
importされたモジュールが他のモジュールの値を変更することは可能なのでしょうか?
例として、tkinterを使ったプログラムがあり
実行すると開かれる画面A(メインプログラム)と画面B(モジュール)があり、画面Bにはボタンがあってそれを押すと画面Aで表示される数値を1増やす
といったプログラム作成に挑んでみたのですがうまく行きません
該当のソースコード
メインプログラム MainProgram001
python3
1import tkinter as tk 2import ButtonDisplay as BD 3 4def Menu_GUI(): 5 6 root=tk.Tk() 7 label001=tk.Label(root,text="None") 8 label001.pack() 9 Sub= BD.Moduel001() 10 Sub.GUI() 11 root.mainloop() 12if __name__ == '__main__': 13 Menu_GUI() 14
モジュール側のコード ButtonDisplay
python3
1import tkinter as tk 2import MainProgram001 as MP1 3 4class Moduel001(object): 5 def __init__(self): 6 self.count=0 7 8 def GUI(self): 9 root=tk.Tk() 10 Button001=tk.Button(root,text="Push",command=self.Count) 11 Button001.pack() 12 root.mainloop() 13 14 def Count(self): 15 self.count=self.count+1 16 MP1.label001["text"]=self.count 17
エラーメッセージ
実行して、ボタンを押すと以下のエラーメッセージが出ます
画面Bモジュールは、画面Aのメインプログラムを読み込んでいるから、行ける、、、と思ったのですが、どうすれば画面Bが画面Aのラベルに表示された数字を更新できるでしょうか?
MP1.label001["text"]=self.count AttributeError: module 'MainProgram001' has no attribute 'label001'
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/14 22:14