类型错误:'PhotoImage'对象不可迭代



我无法运行此代码

from tkinter import *
from PIL import ImageTk , Image
from multiprocessing import *
root = Tk()
def imgs(img):
img1 =  "C:/Users/ASUS/pixel/"+img+".png"
global img2
img2 = ImageTk.PhotoImage(Image.open(img1))
l = Label(root, image = img2)
l.pack()
# prints , inputs , etc
if __name__ == '__main__':
imgs("m_man")
p = Process(args = (img2), target = imgs)
p.start()
# more prints , etc

我一直在收到这个错误:TypeError: 'PhotoImage' object is not iterable,我不明白这个错误意味着什么,我能做些什么来修复代码,有人能解释一下这个错误是什么意思吗?

Process的参数args需要一个可迭代的对象,如列表或元组,但您向它传递了一个无法迭代的项。您想传递一个元组,但python中的括号不构成元组,逗号构成元组。(img2)不是元组,它只是括号中的单个项。(img2,)是具有单个元素img2的元组。所以你需要这样称呼它:

p = Process(args = (img2,), target = imgs)

相关内容

  • 没有找到相关文章

最新更新