- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 tkinter 在第二个窗口中放置图像,在第一个窗口中代码运行良好,但第二个窗口什么也不显示。
在这一部分中,我导入必要的模块:
from tkinter import filedialog, Tk, Frame, Label, PhotoImage, Button
from PIL import Image
from tkinter import*
import tkinter as tk
然后创建主窗口:
raiz = Tk()
raiz.title("ventana")
然后我创建框架并将图像放入框架中:
miFrame = Frame()
miFrame.pack()
miFrame.config(width="1400", heigh=("1200"))
fondo=tk.PhotoImage(file="fondoF.png")
fondo=fondo.subsample(1,1)
label=tk.Label(miFrame,image=fondo)
label.place(x=0,y=0,relwidth=1.0,relheight=1.0)
然后是一个将调用第二个窗口函数的按钮:
btn3 = Button(raiz, text="boton")
btn3.place(x=500, y=500)
btn3.config(command=abrirventana2)
这里我们有打开第二个窗口的函数,这里(我猜)是我想放置图像的地方。
这部分还有两个名为 mih
的按钮,在此期间不执行任何操作,而 ok
则调用函数来关闭第二个窗口:
def abrirventana2():
raiz.deiconify()
ventana2=tk.Toplevel()
ventana2.geometry('500x500')
ventana2.title("ventana2")
ventana2.configure(background="white")
fondov=tk.PhotoImage(file="xxx.gif")
label1=tk.Label(ventana2,image=fondov)
label1.place(x=50,y=50,relwidth=5.0,relheight=5.0)
mensaje=tk.Label(ventana2,text="funciona")
mensaje.pack(padx=5,pady=5,ipadx=5,ipady=5,fill=tk.X)
boton1=tk.Button(ventana2,text='mih')
boton1.pack(side=tk.TOP)
boton2=tk.Button(ventana2,text='ok',command=ventana2.destroy)
boton2.pack(side=tk.TOP)
关闭第二个窗口的函数:
def cerrarventana2():
ventana.destroy()
我使用主循环来保持窗口打开
raiz.mainloop()
注意:我已经尝试在第二个窗口中创建框架,但没有成功。
最佳答案
对我之前的错误回答表示歉意。图像未显示的原因是您没有创建对其的引用。如果您不创建引用,图像将被垃圾收集,这不会将其删除,但在某种意义上只是在 GUI 上呈现一个空白占位符。
为了正确显示图像,您需要在显示图像的代码中添加对图像的引用。因此,您现在拥有:
fondov=tk.PhotoImage(file="giphy.gif")
label1=tk.Label(ventana2,image=fondov)
label1.image = 福多夫
label1.pack()
(
label1.image = fondov
is the reference)
很抱歉造成困惑。这应该可行。
关于python - 如何在 tkinter 中将图像放入另一个窗口中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51692037/
我刚刚开始使用代码块并设置了我的 UI 以在 UI 的右下角显示 watch 窗口。我设置了断点并在 Debug模式下运行我的程序。我可以使用菜单工具栏上的按钮单步执行代码行,但我的 watch 窗口
我正在处理以下访问冲突: Unhandled exception at 0x77DB2A10 (ntdll.dll) in .exe.dmp: 0xC0000005: Access violation
我是一名优秀的程序员,十分优秀!