所以我在python中遇到了TKinter的奇怪问题。我有一个BitmapImage,在将其设置为ImageTk.BitmapImage对象之前,我已经对其进行了检查。然后,我告诉canvas对象创建图像,然后再打包()。仅当我将IMAGE.show()放在此位置后,图像才会显示,这会引发错误,因为您知道ImageTk没有显示。
ioFile = filedialog.askopenfilename()
hexData = PyUtils.openFile(ioFile)
binData = PyUtils.convertToBinary(hexData)
IMAGE = PyUtils.makeImage(binData)
IMAGE = ImageTk.BitmapImage(IMAGE, background='white')
binViewBox = tk.Canvas(root, bg='light grey', width=60)
binViewBox.create_image((0,0), image=IMAGE, anchor='nw')
binViewBox.pack(anchor='nw', side=TOP, fill=BOTH, expand=True)
如果我将IMAGE.show()放在此处,它将显示在画布中,但会抛出并出错,我不想抛出,除非:在那儿传递。
答案 0 :(得分:0)
通过将my image变量作为全局变量来解决。这是有道理的,因为以前我使用类来运行gui。现在没有类,并且由于在函数内部创建了图像,因此在函数结束后将不收集图像。仍然不知道为什么将image变量传递给函数不起作用,但是我想它仍然是个谜。