<p>我看到Bryan Oakley已经发布了一个关于你问题的答案,但我将用我自己的补充,它还修复了我在你的代码中注意到的几个其他问题(一些与<a href="https://stackoverflow.com/questions/1101750/tkinter-attributeerror-nonetype-object-has-no-attribute-attribute-name">this</a>有关),并展示了如何使用Bryan在<a href="https://stackoverflow.com/questions/69547178/how-to-add-image-to-2nd-window-of-tkinter-gui-without-using-pil?noredirect=1#comment122928005_69547178">comment</a>中提到的<code>subsample()</code>方法调整图像大小而不使用PIL在你的相关问题下,该问题已作为副本关闭</p>
<p>通过使用Python控制台中的Python内置帮助系统,您可以找到一些关于它的文档,<code>copy()</code>,<code>zoom()</code>,以及<code>Photoimage</code>类的其他方法:即</p>
<pre><code>>>> import tkinter
>>> help(tkinter.PhotoImage)
</code></pre>
<p>当然,它也在<a href="https://github.com/python/cpython/blob/3.10/Lib/tkinter/__init__.py#L4085" rel="nofollow noreferrer">source code</a>中</p>
<p>以下是问题代码中的代码以及修复程序:</p>
<pre><code>from tkinter import ttk
from tkinter import *
#image_filename = '4 Dry Out Logo.png'
image_filename = '8-ball.png' # I don't have your image.
root = Tk()
root.title('4 Dry Out')
# IMAGE 1 (1st window)
img = PhotoImage(file=image_filename)
Label(root,image=img).pack()
# window format
root.geometry("500x500")
root['bg'] = 'blue'
class MainWin:
# main window frame
def __init__(self, master):
mainFrame = Frame(master)
mainFrame.pack()
# main window title / button
self.titleLabel = Label(master, text="4 Dry Out e-Rental", bg="blue", fg="white",
font=("Arial Black", 20))
self.titleLabel.pack()
self.Btn = Button(master, text="Water Damage Equipment", command=self.MenuWin,
bg="navy", fg="white", font=("Roboto"))
self.Btn.pack()
# button: new window
def MenuWin(self):
self.record = Menu()
self.record.win.mainloop()
class Menu:
# new window frame
def __init__(self):
self.win = Toplevel()
self.frameFit = Frame(self.win)
self.frameFit.pack()
self.frameFit['bg']='blue'
# IMAGE 2 <<<
# img = PhotoImage(file='4 Dry Out Logo.png')
small_img = img.subsample(2) # Smaller copy of global img size 50%
Label(self.win, image=small_img).pack()
self.lbl_image = small_img # Save reference to local image object.
# portal title
self.TitleLabel = Label(self.frameFit, text="e-Rental Portal", bg="blue",
fg="white", font=("Arial Black", 15))
self.TitleLabel.pack()
# start / end
winStart = MainWin(root)
root.mainloop()
</code></pre>
<p>我没有您的<code>4 Dry Out Logo.png</code>徽标图像,但以下是在我的系统上使用替代图像运行时单击按钮后的情况</p>
<p><a href="https://i.stack.imgur.com/NzOhB.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/NzOhB.png" alt="screenshot"/></a></p>