0

Python 3 のスクリプトに行き詰まっています。tkinter の既存のラベルに追加のテキストを追加したいと考えています。

私はこれを試みました:

def labelConfig(string,append=False):
    if append:
        label.configure(text+=string)
    else:
        label.configure(text=string)

しかし、それはコンパイルされません...どうすればこれを適切に行うことができますか?

4

3 に答える 3

4

Bryan Oakley の回答とは別に+=、ラベルのテキストに辞書の値としてアクセスする場合にも使用できます。

def labelConfig(string,append=False):
    if append:
        label['text'] += string
    else:
        label['text'] = string

で取得または設定できるすべてのオプションにconfigureは同等の構文widget['option'] = valueがあり、このような状況で使用できます。

于 2013-05-01T14:40:02.727 に答える
3

これは tkinter の問題ではなく、すべての python に当てはまります。+=関数呼び出しで位置引数を設定する場合は使用できません。代わりに、値を取得し、必要に応じて変更してから、新しい値をウィジェットに割り当てる必要があります。

例えば:

def labelConfig(string,append=False):
    if append:
        text = label.cget("text") + string
        label.configure(text=text)
    else:
        label.configure(text=string)
于 2013-04-30T14:00:36.440 に答える
0

これtext+=stringはステートメントなので、何も返されません。最初にラベルから値を取得し、それらの文字列を連結してから引数として渡す必要があります

于 2013-04-30T13:56:19.783 に答える