WXPython,将SetLabel()传递回wx

WXPython,将SetLabel()传递回wx,python,attributes,wxpython,Python,Attributes,Wxpython,Python 3.8.6, WXPython, 经验-Noobster 制作一个Gui,在事件发生后播放列表中的视频,如按下按钮。有一个测试按钮和一个“添加视频”按钮。当我添加了一个视频,我有它,所以它进入一个列表的0。然后更改文本/标签以显示加载的文件。 下面是我目前一直在使用的代码摘录 ''' 我还尝试了LeftPanel.catIdleText 我认为将新的更新传递回最初的catIdleText将是一件非常简单的事情,但是这让我感到困惑。 非常感谢您的帮助。错误可能意味着您将一些文本直接分

Python 3.8.6, WXPython, 经验-Noobster

制作一个Gui,在事件发生后播放列表中的视频,如按下按钮。有一个测试按钮和一个“添加视频”按钮。当我添加了一个视频,我有它,所以它进入一个列表的0。然后更改文本/标签以显示加载的文件。 下面是我目前一直在使用的代码摘录

'''

我还尝试了LeftPanel.catIdleText

我认为将新的更新传递回最初的catIdleText将是一件非常简单的事情,但是这让我感到困惑。
非常感谢您的帮助。

错误可能意味着您将一些文本直接分配给变量
idleLabel=“text”
,现在您无法访问
标签,只能访问正常的
字符串。但我不知道在方法
addVid1
中哪里可以这样做

但是如果您想以不同的方法使用
小部件
(和其他变量),那么您应该使用
self.
-ie,
self.idleLabel
self.catIdleText

def __init__(self, parent, frame_object):
    
    # ... code ....

    self.idleLabel = wx.StaticText(self, 0, label=idleText + " - " + ntpath.basename(catIdleText), pos=(5, 5))
   

def addVid1(self, event,):

    # .... code ...

       self.idleLabel.SetLabel("Idle Animation" + " - " + ntpath.basename(catIdleText))

也许这样你就不会把
text
分配给
self.idleLabel

a总是把完整的错误消息(从单词“Traceback”开始)作为文本(而不是屏幕截图)放在问题中(不是注释)。还有其他有用的信息。似乎您将一些文本直接分配给变量
idleLabel=“text”
,而现在您无法访问
Label
,只能访问普通字符串。如果您不使用
widgets
和其他不同方法的变量,那么您应该使用
self.
-ie,
self.idleLabel
self.catIdleText
正如@furas指出的那样,实际上您定义了两个不同的
local
变量,一个在
def\uuu init\uuu
中,另一个在
def addVid1
中。通过将它们声明为
instance
variables,即
self.variable\u name
@furas,抱歉,我已编辑了输出错误消息,以显示回溯的完整输出,从而解决了此问题。在将来,我们现在将这样做。
Traceback (most recent call last):
     File "frame1.py", line 179, in addVid1
       idleLabel.SetLabel("Idle Animation" + " - " + ntpath.basename(catIdleText))
AttributeError: 'str' object has no attribute 'SetLabel'
def __init__(self, parent, frame_object):
    
    # ... code ....

    self.idleLabel = wx.StaticText(self, 0, label=idleText + " - " + ntpath.basename(catIdleText), pos=(5, 5))
   

def addVid1(self, event,):

    # .... code ...

       self.idleLabel.SetLabel("Idle Animation" + " - " + ntpath.basename(catIdleText))