Python 3-Tkinter PhotoImage-当主窗口移出屏幕时,小部件消失

时间:2018-08-14 22:14:58

标签: python python-3.x tkinter photoimage

我有一个tkinter窗口,通过创建带有PhotoImage实例的 Label小部件(通过标签属性引用图像实例)来给背景图片。

但是,当我运行脚本并将主窗口移动到“开始”菜单下方(使用Windows 10的情况下)时,或者甚至在屏幕两侧移动了片刻时,所有小部件都打包好了(带有背景图片)完全消失

它们似乎只是在用鼠标悬停在它们上方时才返回(某种程度上)。此外,背景图片仍然保留并继续填充屏幕。可能是背景图片“标签”被“抬起”并且看起来像小部件正在消失吗?如果是这样,如何防止这种情况发生?

我现在发现的解决方法是不使用带有PhotoImage的Label作为父“框架”,而是使用仅具有背景色的典型“框架”小部件,但这并不理想。

import tkinter as tk

root = tk.Tk()
root.geometry('600x350+600+300')
root.resizable(width=False, height=False)

boxBg = '#666'
frameBg = '#fff'

#problem method
backgroundImg = tk.PhotoImage(file='program_media/background.png')
bgFrame = tk.Label(root, image=backgroundImg)
bgFrame.image = backgroundImg

#less than ideal solution so far
#bgFrame = tk.Frame(root, bg='#fff')

bgFrame.pack(expand=1, fill=tk.BOTH)

mainFrame = tk.Frame(bgFrame)
mainFrame.pack(side=tk.TOP)

title = tk.Label(mainFrame, text='Test String')
title.pack(side=tk.TOP)

#widget creation code packed within mainFrame
#...
#...       All these widgets (including mainFrame above) are disappearing
#...
#end of widget creation code

root.mainloop()

在将主窗口移动到开始菜单下方之前和之后的screenshot中,了解我的意思。

0 个答案:

没有答案