新顶层打开时 Tkinter 图像标签消失
Tkinter image labels disappearing when new toplevel opened
我有一个带有图像标签的 root
window 然后我有一个 manage
顶层开口(具有相同的图像和函数内部的变量),当它打开时根目录中的图像不再存在,图像仅显示在新的顶层。可能是因为我使用相同的变量吗?我试过更改变量名称但没有运气:(请注意,我在这里使用 Pmw
作为 Balloon
小部件(工具提示)可能是问题与它有关,但我不这么认为
这是我减少最大值的代码:
在 root
window:
# Creating ? icons
q_mark = Image.open('Image/question_mark.png')
q_mark_re = q_mark.resize((15, 15), Image.ANTIALIAS)
q_mark_new = ImageTk.PhotoImage(q_mark_re)
# Making 2 ? icons
q_mark_1 = Label(root, image=q_mark_new)
q_mark_1.grid(row=0, column=2, padx=(0, 10))
q_mark_2 = Label(root, image=q_mark_new)
q_mark_2.grid(row=1, column=2, padx=(0, 10))
# Creating a tooltip for each ? icon
nametooltip_1 = Pmw.Balloon(root)
nametooltip_1.bind(q_mark_1, 'Name:\nEnter a valid full name')
nametooltip_2 = Pmw.Balloon(root)
nametooltip_2.bind(q_mark_2, 'Phone Number:\nEnter a phone number less than 11 digits')
在 manage
顶层:
def manage():
global q_mark_new
# Defining Login window
admin = Toplevel(root)
admin.title('Login')
admin.focus_force()
.....
# Creating ? icons
q_mark = Image.open('Image/question_mark.png')
q_mark_re = q_mark.resize((15, 15), Image.ANTIALIAS)
q_mark_new = ImageTk.PhotoImage(q_mark_re)
# Making 13 ? icons
q_mark_1 = Label(admin, image=q_mark_new)
q_mark_2 = Label(admin, image=q_mark_new)
q_mark_1.grid(row=2, column=1, padx=(5, 130))
q_mark_2.grid(row=4, column=1, padx=(5, 130))
nametooltip_1 = Pmw.Balloon(root)
nametooltip_2 = Pmw.Balloon(root)
nametooltip_1.bind(q_mark_1, 'Username:\nEnter the given username')
nametooltip_2.bind(q_mark_1, 'Password:\nEnter the given correct password')
现在我在 manange
window 上看到了图像,但在 root
window
上没有了
之前(注意输入框旁边的 q_mark):
之后(注意它在 root
window 中消失了,它出现在 manage
window:
提前致谢:D
为您最初创建的 q_mark
命名并且不要再次创建它
q_mark = Image.open('Image/question_mark.png')
q_mark_re = q_mark.resize((15, 15), Image.ANTIALIAS)
q_mark_new = ImageTk.PhotoImage(q_mark_re, name="qmark")
在任何要使用图像的地方使用名称
def manage():
#don't need this
#global q_mark_new
# Defining Login window
admin = Toplevel(root)
admin.title('Login')
admin.focus_force()
.....
# Creating ? icons ~ DON'T DO THIS
#q_mark = Image.open('Image/question_mark.png')
#q_mark_re = q_mark.resize((15, 15), Image.ANTIALIAS)
#q_mark_new = ImageTk.PhotoImage(q_mark_re)
# Making 13 ? icons
q_mark_1 = Label(admin, image="qmark")
q_mark_2 = Label(admin, image="qmark")
q_mark_1.grid(row=2, column=1, padx=(5, 130))
q_mark_2.grid(row=4, column=1, padx=(5, 130))
nametooltip_1 = Pmw.Balloon(root)
nametooltip_2 = Pmw.Balloon(root)
nametooltip_1.bind(q_mark_1, 'Username:\nEnter the given username')
nametooltip_2.bind(q_mark_1, 'Password:\nEnter the given correct password')
我有一个带有图像标签的 root
window 然后我有一个 manage
顶层开口(具有相同的图像和函数内部的变量),当它打开时根目录中的图像不再存在,图像仅显示在新的顶层。可能是因为我使用相同的变量吗?我试过更改变量名称但没有运气:(请注意,我在这里使用 Pmw
作为 Balloon
小部件(工具提示)可能是问题与它有关,但我不这么认为
这是我减少最大值的代码:
在 root
window:
# Creating ? icons
q_mark = Image.open('Image/question_mark.png')
q_mark_re = q_mark.resize((15, 15), Image.ANTIALIAS)
q_mark_new = ImageTk.PhotoImage(q_mark_re)
# Making 2 ? icons
q_mark_1 = Label(root, image=q_mark_new)
q_mark_1.grid(row=0, column=2, padx=(0, 10))
q_mark_2 = Label(root, image=q_mark_new)
q_mark_2.grid(row=1, column=2, padx=(0, 10))
# Creating a tooltip for each ? icon
nametooltip_1 = Pmw.Balloon(root)
nametooltip_1.bind(q_mark_1, 'Name:\nEnter a valid full name')
nametooltip_2 = Pmw.Balloon(root)
nametooltip_2.bind(q_mark_2, 'Phone Number:\nEnter a phone number less than 11 digits')
在 manage
顶层:
def manage():
global q_mark_new
# Defining Login window
admin = Toplevel(root)
admin.title('Login')
admin.focus_force()
.....
# Creating ? icons
q_mark = Image.open('Image/question_mark.png')
q_mark_re = q_mark.resize((15, 15), Image.ANTIALIAS)
q_mark_new = ImageTk.PhotoImage(q_mark_re)
# Making 13 ? icons
q_mark_1 = Label(admin, image=q_mark_new)
q_mark_2 = Label(admin, image=q_mark_new)
q_mark_1.grid(row=2, column=1, padx=(5, 130))
q_mark_2.grid(row=4, column=1, padx=(5, 130))
nametooltip_1 = Pmw.Balloon(root)
nametooltip_2 = Pmw.Balloon(root)
nametooltip_1.bind(q_mark_1, 'Username:\nEnter the given username')
nametooltip_2.bind(q_mark_1, 'Password:\nEnter the given correct password')
现在我在 manange
window 上看到了图像,但在 root
window
之前(注意输入框旁边的 q_mark):
之后(注意它在 root
window 中消失了,它出现在 manage
window:
提前致谢:D
为您最初创建的 q_mark
命名并且不要再次创建它
q_mark = Image.open('Image/question_mark.png')
q_mark_re = q_mark.resize((15, 15), Image.ANTIALIAS)
q_mark_new = ImageTk.PhotoImage(q_mark_re, name="qmark")
在任何要使用图像的地方使用名称
def manage():
#don't need this
#global q_mark_new
# Defining Login window
admin = Toplevel(root)
admin.title('Login')
admin.focus_force()
.....
# Creating ? icons ~ DON'T DO THIS
#q_mark = Image.open('Image/question_mark.png')
#q_mark_re = q_mark.resize((15, 15), Image.ANTIALIAS)
#q_mark_new = ImageTk.PhotoImage(q_mark_re)
# Making 13 ? icons
q_mark_1 = Label(admin, image="qmark")
q_mark_2 = Label(admin, image="qmark")
q_mark_1.grid(row=2, column=1, padx=(5, 130))
q_mark_2.grid(row=4, column=1, padx=(5, 130))
nametooltip_1 = Pmw.Balloon(root)
nametooltip_2 = Pmw.Balloon(root)
nametooltip_1.bind(q_mark_1, 'Username:\nEnter the given username')
nametooltip_2.bind(q_mark_1, 'Password:\nEnter the given correct password')