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 に答える