クラス(Eventsim)内でモジュール(updateUI)を呼び出すときに問題があります。Tkinterクラスモジュール参照例外
Sim = EventSim()行は、引数(親)がないため例外をスローします。私はこれを修正する方法/親オブジェクトを参照する方法を理解することはできません。
これはTkinterの私の最初の試みであり、私のpythonの知識もかなり限られています(今のところ)。
from Tkinter import *
class EventSim(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)
self.parent = parent
def updateUI(self,IP_Address,Port_Number,Events_Directory):
self.parent.title('ECP Event Simulator')
self.parent.resizable(0, 0)
self.pack(fill=BOTH, expand=True)
frame1 = Frame(self)
frame1.pack(fill=X)
frame2 = Frame(self)
frame2.pack(fill=X)
frame3 = Frame(self)
frame3.pack(fill=X)
frame4 = Frame(self)
frame4.pack(fill=X)
frame5 = Frame(self)
frame5.pack(fill=X)
frame6 = Frame(self)
frame6.pack(fill=X,pady=(10,30))
frame7 = Frame(self)
frame7.pack(fill=X)
frame8 = Frame(self)
frame8.pack(fill=X,pady=(10,0))
Main_Label = Label(frame1,text='ECP EventSim')
Main_Label.pack(side=LEFT,padx=100)
IP_Label = Label(frame2,text='IP Address:')
IP_Label.pack(side=LEFT,padx=10)
Port_Label = Label(frame2,text='Port:')
Port_Label.pack(side=RIGHT,padx=70)
IP_Text = Entry(frame3)
IP_Text.pack(fill=X,side=LEFT,padx=10)
IP_Text = Entry(frame3)
IP_Text.pack(fill=X,side=RIGHT,padx=10)
Dir_Label = Label(frame4,text='Events Directory:')
Dir_Label.pack(side=LEFT,padx=10)
Dir_Text = Entry(frame5)
Dir_Text.pack(fill=X,side=LEFT,padx=10,expand=True)
Save_Button = Button(frame6,text='Save Config')
Save_Button.pack(fill=X,side=LEFT,padx=10,expand=True)
Con_Button = Button(frame7,text='Connect')
Con_Button.pack(fill=X,side=LEFT,padx=10,expand=True)
Send_Button = Button(frame8,text='Start Sending Events')
Send_Button.pack(fill=X,side=LEFT,padx=10,expand=True)
def main():
root = Tk()
root.geometry("300x300+750+300")
app = EventSim(root)
root.mainloop()
Sim = EventSim()
Sim.updateUI('1','1','1')
main()
を見て:あなたは親を渡す一つの場所とそうでない一つの場所を持っています。親を通過しないものを削除すると、重複しているようです。 –
私はあなたがupdateUIメソッドについて話していると仮定します。もしそうなら、それは私の間違いです。私は実験していて、親を渡すことは元のコードの一部ではありませんでした。私はそれを取り上げますが、モジュールが呼び出される前に例外がスローされるため、問題は解決しません。 –
あなたは正しいです。私が投稿したコードによれば、彼らは使用されていないが、彼らは将来になるだろう。私はちょうどここに投稿する前にパラメータを取ることを忘れてしまった。 –