簡體   English   中英

如何從同一類中的另一個方法訪問方法變量(Tkinter)?

[英]How to access a method variable (Tkinter) from another method in same class?

我在方法 1 中定義了一些變量,並從中調用方法 2。 在方法 2 中,我必須訪問方法 1 變量。

class Window(Frame):

    def __init__(self, master=None):
        Frame.__init__(self, master)               
        self.master = master
        self.myElements()

    def myElements(self):
        self.master.title("1841144-SANDRINE P JOY")
        self.pack(fill=BOTH , expand=1)
        label1=Label(text="Starts with").place(x=10,y=0)
        generateButton = Button(self,text="Generate", command=self.autogen)
        generateButton.place(x=150,y=0)
        label2=Label(text="--Here , your Random Name appears--").place(x=70,y=30)

    def autogen(self):
        randomName=pick(names)
        label2.insert(INSERT,randomName) #This line is wrong

感謝 @AKX 和 @Cool Cloud 找出我的錯誤

這是更正后的代碼

創建變量方法的實例是它所需要的

def __init__(self, master=None):
        Frame.__init__(self, master)               
        self.master = master
        self.myElements()

    def myElements(self):
        self.master.title("1841144-SANDRINE P JOY")
        self.pack(fill=BOTH , expand=1)
        label1=Label(text="Starts with").place(x=10,y=0)
        generateButton = Button(self,text="Generate", command=self.autogen)
        generateButton.place(x=150,y=0)
        self.result=Text(self,width=10,height=1)
        self.result.place(x=70,y=30)
        mstart = Label(self, text="Starting with M",bg='white',fg='black',font=("italic", 10)).place(x=20,y=50)
        mtext = Text(self, width=15, height=10)
        mtext.place(x=10,y=70)

        pstart = Label(self, text="Starting with P",bg='white',fg='black',font=("italic", 10)).place(x=140,y=50)
        ptext = Text(self, width=15, height=10)
        ptext.place(x=120,y=70)

        nstart = Label(self, text="Starting with N",bg='white',fg='black',font=("italic", 10)).place(x=260,y=50)
        ntext = Text(self, width=15, height=10)
        ntext.place(x=240,y=70)     

    def autogen(self):
        randomName=pick(names)
        self.result.insert(INSERT,randomName)

將它們存儲為實例變量( self.label1等):

class Window(Frame):
    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.master = master
        self.myElements()

    def myElements(self):
        self.master.title("1841144-SANDRINE P JOY")
        self.pack(fill=BOTH, expand=1)
        self.label1 = Label(text="Starts with")
        self.label1.place(x=10, y=0)
        self.generateButton = Button(self, text="Generate", command=self.autogen)
        self.generateButton.place(x=150, y=0)
        self.label2 = Label(text="--Here , your Random Name appears--")
        self.label2.place(x=70, y=30)

    def autogen(self):
        randomName = pick(names)
        self.label2.insert(INSERT, randomName)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM