ユーザー名とパスワードを取得してリモートサーバーに接続し、機能を実行するTkinterを使用してGUIを作成しようとしています。いくつかの乱雑なコードをまとめて、多かれ少なかれ機能しましたが、きちんとしたモジュールで再作成しようとすると、壊れました。おそらく初心者のpythonエラーですが、私はそれを見つけることができません。編集:明確にするために、それが機能したとき、唯一のクラスはsetupGuiであり、すべてのメソッドはそのクラスの下にありました。GUIをメソッドから分離したので、機能しません。
class setupGui(object):
def __init__(self, parent):
##omited general frame stuff
self.userIn = ttk.Entry(self.topFrame, width = 20)
self.userIn.grid(row = 1, column = 1)
self.passIn = ttk.Entry(self.topFrame, width = 20, show ="*")
self.passIn.grid(row = 2, column = 1)
#Buttons
self.setupbtn = ttk.Button(self.topFrame, text = "Start Setup", command = setup().startSetup())
self.setupbtn.grid(row = 3, column = 0, pady = 10)
class setup(object):
def__init__(self):
self.userName = setupGui.userIn.get()
self.userPass = setupGui.passIn.get()
def startSetup(self):
self.another_related_fucntion # about 4 related functions actually
if __name__ == '__main__':
root = Tk()
gui = setupGui(root)
root.mainloop()
そして、ボタンにコマンドが添付されていない場合、すべてが正常に機能します(ただし、見栄えが悪いことを除いて、明らかにしゃがみます)。コマンドを添付すると、次のエラーが発生します。
Traceback (most recent call last):
File "macSetup.py", line 211, in <module>
gui = setupGui(root)
File "macSetup.py", line 45, in __init__
self.setupbtn = ttk.Button(self.topFrame, text = "Start Setup", command = setup().startSetup())
File "macSetup.py", line 69, in __init__
self.userName = setupGui.userIn.get()
AttributeError: type object 'setupGui' has no attribute 'userIn'