python-3.x - 无法在第二个 Tkinter 帧中显示图像标签
问题描述
我正在尝试使用 Tkinter 构建一个简单的 gui。该应用程序涉及一个较小的辅助框架,在按下按钮时会在主框架之上打开。此辅助帧必须包含图像。图像标签很容易出现在主框架上,但在辅助框架上,图像标签显示为图像大小的空框,具有我设置的任何背景颜色。
这是我的做法:
#send diagram page
def send_diagram():
send_diagram_frame=tk.Frame(frame, bg="#D4BAEC")
send_diagram_frame.place(relx=0.5, rely=0.5, relheight=0.7, relwidth=0.7, anchor="center")
send_diagram_entry_working_image=Image.open('/home/raghav/RemEdi/design/assets/generic_page_entry.png')
send_diagram_entry_image=ImageTk.PhotoImage(send_diagram_entry_working_image)
send_diagram_entry_label=tk.Label(send_diagram_frame, image=send_diagram_entry_image)
send_diagram_entry_label.place(relx=0.5, rely=0.5, anchor="center")
return
可见,send_diagram() 是按钮的命令。
我尝试在辅助框架内添加另一个较小的框架来包含图像,但这也不起作用。
任何帮助都会非常有帮助。谢谢!
解决方案
您正在一个函数内创建新图像,并使用它自己的本地命名空间。当函数结束时,对图像的引用将被垃圾收集。
您可以通过在标签小部件中保存对图像的引用来解决此问题。创建图像后将此行放入函数中:
send_diagram_entry_label.image = send_diagram_entry_image
推荐阅读
- performance - 我可以将 JMeter Standalone 文件转换为 GUI 文件吗?
- sql - Powershell dbatools - 使用 CMS 获取服务器名称
- python-3.x - 做 GRAD-CAM 时的“合并层”问题。如何在我的自定义功能模型中克服这个问题?
- excel - 将范围从 excel 和 pasteSpecial 复制到 word 时,我想在图片周围添加边框线
- python - 对数据框 pandas 中的选定数据进行分组
- android - 3 android中的editText & textWatcher问题
- c# - C#中无法识别来自Jsonstream的音素
- php - 无法在 Laravel 迁移中创建外键
- windows - 将 JAVA_HOME 等环境变量放在 .bashrc 或 .profile 或 .bash_login 中的最佳实践是什么?
- c# - 使用 BackgroundWorker 时如何将 e.Result 值返回给 VB6 调用者?