如何访问标签以更改其文本

2024-07-02 10:30:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图更改标签的文本,但我不知道如何访问它。我已经添加了标签和一个按钮,我想改变按钮点击标签的文本。但是,我无法从函数访问标签-请参阅带问号的行。我应该把它改成什么?你知道吗

当我按原样尝试代码时,得到“示例实例没有属性'frame2'”

我使用的是python2.7

================更新===========

将第2框架更改为自我框架2,但并没有解决问题

class Example(Frame):

   def __init__(self, parent):
      Frame.__init__(self, parent)
      self.all = []
      self.path = ""
      self.parent = parent
      self.initUI()

   def initUI(self):

    self.parent.title("SomeName")
    self.style = Style()
    self.style.theme_use("default")

    self.frame2 = Frame(self, relief=FLAT, borderwidth=2)
    self.frame2.pack(side=TOP, fill=BOTH, expand=False)

    # this is my label
    usrLable = Label(self.frame2, text="Username: ") 
    usrLable.pack(side=LEFT, padx=5, pady=1)

    frame6 = Frame(self, relief=FLAT, borderwidth=2)
    frame6.pack(fill=BOTH, expand=True)

    # this is my button
    stopButton = Button(frame6, text="Stop", command=self.stopButtonClick)
    stopButton.pack(side=LEFT)

    def stopButtonClick(self):
        try:
           self.frame2.usrLable.configure(text="hello") # ?????????????
        except Exception,e:
              print str(e)
        return

Tags: text文本self框架initdef标签按钮
1条回答
网友
1楼 · 发布于 2024-07-02 10:30:32

您需要替换以下行:

frame2 = Frame(self, relief=FLAT, borderwidth=2)
frame2.pack(side=TOP, fill=BOTH, expand=False)

使用:

self.frame2 = Frame(self, relief=FLAT, borderwidth=2)
self.frame2.pack(side=TOP, fill=BOTH, expand=False)

使frame2成为实例属性而不是局部变量。你知道吗

并相应地将对frame2的引用更改为self.frame2。你知道吗

usrLable也一样。你知道吗


class Example(Frame):

    def __init__(self, parent):
        Frame.__init__(self, parent)
        self.all = []
        self.path = ""
        self.parent = parent
        self.initUI()

    def initUI(self):
        self.parent.title("SomeName")
        self.style = Style()
        self.style.theme_use("default")

        self.frame2 = Frame(self, relief=FLAT, borderwidth=2)
        self.frame2.pack(side=TOP, fill=BOTH, expand=False)

        self.usrLable = Label(self.frame2, text="Username: ") 
        self.usrLable.pack(side=LEFT, padx=5, pady=1)

        self.frame6 = Frame(self, relief=FLAT, borderwidth=2)
        self.frame6.pack(fill=BOTH, expand=True)

        stopButton = Button(self.frame6, text="Stop", command=self.stopButtonClick)
        stopButton.pack(side=LEFT)

    def stopButtonClick(self):
        self.usrLable.configure(text="hello")

相关问题 更多 >