1

我正在使用 Python 为我当前的项目创建一个新应用程序。这是我第一次使用它,这是一次学习经历......

我的应用程序中有一个按钮,askcolor()可以从 Python 调用该函数。第一次一切正常,但在那之后,它给了我以下错误。

AttributeError: 'str' object has no attribute 'set'

这是我在我的应用程序中工作的顺序:

  1. 用户点击Select Color按钮:

    self.bc_bttn=Button(self, text='Select Color', command=lambda: self.callback())
    
  2. 该函数调用该callback函数,我选择了正确的颜色

    def callback(self):
         (triple, hexstr) = askcolor()
         if triple:
             triple_string = str(triple)
             triple_string2 = re.findall('[0-9, ]',triple_string);
             triple_bkgColor = ''.join(triple_string2)
             print triple_bkgColor
             self.overlayColorValue.set(triple_bkgColor)
    
  3. self.overlayColorValue.set(triple_bkgColor)更改文本字段条目的值,以便用户在应用程序上看到正确的值

  4. 我按下Save按钮

    self.overlayColorValue = self.bc_ent.get()
    body.set('overlay-color', self.overlayColorValue)
    
  5. 我的更改被写入 xml 文件

    tree.write(CONFIG_XML)
    
  6. 这次一切正常,但如果我想再次做同样的事情来改变颜色。然后单击Select Color按钮时出现以下错误

    AttributeError: 'str' object has no attribute 'set'
    
4

1 回答 1

1

您将self.overlayColorValue属性替换为 的返回值self.bc_ent.get(),即str.

据推测,在此之前,它是一个标签,而您想调用.set()它:

self.overlayColorValue.set(self.bc_ent.get())
body.set('overlay-color', self.overlayColorValue.get())
于 2013-04-25T19:08:45.073 回答