Python全局文本区域

时间:2014-07-17 11:15:21

标签: python layout tkinter global-variables

我有一个在initUI(self)函数中创建的文本区域,并希望在另一个中添加其内容。当我在课堂上初始化文本区域为全局时,该区域是在另一个窗口中创建的,这不是我想要的。我见过与全局变量有关的问题但不是这样的问题。

from Tkinter import*
textArea = Text() # creates another window
class test(Frame):
    def __init__(self, parent):
        Frame.__init__(self,parent)
        self.initUI()

    def initUI(self):
        mainFrame = Frame(self, parent)
        textArea  = Text(maınFrame, height=10, width=10)
        textArea.pack(side=BOTTOM)
        textArea.insert(INSERT, "abc")
    def changeText():
        global textArea
        textArea.insert(INSERT, "def")

感谢

1 个答案:

答案 0 :(得分:1)

当您需要在属于同一个类的两个方法之间共享变量时,

global不是必需的。您可以将所需的变量附加到self

from Tkinter import*
class test(Frame):
    def __init__(self, parent):
        Frame.__init__(self,parent)
        self.initUI()

    def initUI(self):
        mainFrame = Frame(self, parent)
        self.textArea  = Text(maınFrame, height=10, width=10)
        self.textArea.pack(side=BOTTOM)
        self.textArea.insert(INSERT, "abc")
    def changeText(self):
        self.textArea.insert(INSERT, "def")