我目前正在使用Python和TkInter创建一个GUI应用程序,我有“随机”消失的图像问题。我知道您需要保留对图像的引用以防止它们被垃圾收集,我不相信这是导致我出现问题的原因。
我目前拥有的是带有图像的TkInter标签。当我在屏幕之间移动窗口(我有两台显示器)或有时在画布上添加新标签时会出现问题。会发生的是,少数(不是全部)图像会消失,但如果重新调整窗口大小,它们会重新出现。我试过的是通过调用root tk元素上的update()方法来发出重绘,但这并不能解决我的问题。这是TkInter中的已知问题吗?
编辑:
以下是使图像消失的特定代码:
def showNoMatch():
global tkImageNoMatch, noMatchLabel, panel
img = Image.open("noMatches.png")
tkImageNoMatch = ImageTk.PhotoImage(img)
noMatchLabel = Label(panel, image = tkImageNoMatch, borderwidth = 0)
noMatchLabel.place(x = 250, y = 550)
对我的gui有以下影响:
在添加noMatchLabel之前:
添加noMatchLabel之后:
请注意,两侧的两个按钮消失,但当我重新调整窗口大小时,它们会重新出现。