2017-10-07 6 views
0

を受け付けない:のpython:プログレスバーは、私は、各ループからの私のプログレスバーのint型の値を供給しようとしているが、私は、私はint型の値を入力していないよと言うエラーが出続けるint型

TypeError: 'int' object does not support item assignment 

何I [行っMは:

  1. 配列長のプログレスバーのアレイ
  2. 分割長(アレイ内の各項目の値/パーセンテージを得るために)
  3. 各ループの全長を取得します値は、ステップ2から(INT)にキャスティングされ、合計値VAR
  4. が合計値VARに(int)を鋳造し、私のプログレスバービットとコードの断片は、現在見て

に割り当てるに追加しましたこのように:

(in main loop) 
.... 
self.progress = Progressbar(self, orient=HORIZONTAL,length=100, mode='determinate') 
global that 
that = self 
def progress_bar(self, progress): 
    progress["value"]=int(progress) 
.... 
(in another worker thread) 
.... 
item_count = 0 
item_percent = 100/len(my_arr) 
for x in my_arr: 
    item_count += 1 
    pb_percent = item_count * item_percent 
    pb_formatted = int(pb_formatted) 
    Application.progress_bar(that, int(pb_formatted)) 

すべてが正しいと思われますが、このエラーが発生し続けます。 pb_formatted varを印刷すると、プログレスバーに必要なものが表示されます。if-elseコードブロックを実行して、入力しようとしているものが実際にintかどうかを確認しました。

何が問題なのですか?

+0

どの行がエラーを投げていますか? – amrit

答えて

1

はここにあなたの問題です:ここ

def progress_bar(self, progress): 
    progress["value"]=int(progress) 

progressあなたが渡されてきた引数で、42 42["value"] = int(42)は何も意味しないと言います。あなたは42の価値の項目にどのように42を割り当てますか?つまり、progressはコンテナではないため、progress["value"]に割り当てることはできません。

=の左側にself.progressが必要です。 self.progressは、お客様のProgressbarインスタンスです。

+0

ありがとう、これを読んだ後、プログレスバーを設定した関数で 'self.progress'オブジェクトを呼んでいないことに気付きました。 – lowxkey

関連する問題