我正在尝试从每个循环中提取我的进度条int值,但我一直收到错误,表示我没有输入int值:
TypeError: 'int' object does not support item assignment
我正在做的是:
代码的各个部分目前看起来像这样:
(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
代码块来检查我输入的内容是否确实{{ 1}}。
可能是什么问题?
答案 0 :(得分:1)
这是你的问题:
def progress_bar(self, progress):
progress["value"]=int(progress)
progress
这是你传入的论据,比如说42 42["value"] = int(42)
并不意味着什么。你如何将42分配给42的第42项?换句话说,您无法分配到progress["value"]
,因为progress
不是容器。
您可能希望self.progress
符号左侧显示=
。 self.progress
是您的Progressbar
个实例。