Skip to main content
 首页 » 编程设计

python之无法将图像添加到 Tkinter 列表框

2025年05月04日12lovecherry

我正在尝试将图像添加到列表框中,但我在列表框中看到一个名为“pyimage1”的条目而不是图像。我已经使用 Text 和 Label 小部件成功显示了图像,但我无法弄清楚 Listbox 小部件。

我查看了文档,但它没有说明如何使用图像正确更新列表框。

将图像添加为列表框条目的最佳方法是什么?

到目前为止,这是我尝试过的:

#!/usr/bin/python 
# test: lb_and_jpg.py 
 
from Tkinter import * 
from PIL import Image, ImageTk 
 
import os 
 
my_image_file = os.getcwd() + r'\logo.jpg' 
 
class MainApp: 
    def __init__(self, parent): 
        self.myParent = parent 
        self.main_container = Frame(parent) 
        self.main_container.grid(row=0, rowspan=10, column=0, columnspan=20) 
 
        # Defining frames 
        self.left_frame = Frame(self.main_container) 
        self.left_frame.grid(row=0, rowspan=10, column=0, columnspan=5) 
 
        self.right_frame = Frame(self.main_container) 
        self.right_frame.grid(row=0, rowspan=10, column=6, columnspan=14) 
 
        self.left_listbox = Listbox(self.left_frame, height=10, width=5) 
        self.left_listbox.grid(row=0, column=0) 
 
        self.right_listbox = Listbox(self.right_frame, height=10, width=14) 
        self.right_listbox.grid(row=0, column=0) 
 
        my_img = Image.open(my_image_file) 
        my_image = ImageTk.PhotoImage(my_img) 
 
        self.right_listbox.insert(END, my_image) 
 
 
root = Tk() 
root.title("ListBox and JPG") 
mainapp = MainApp(root) 
root.mainloop() 

请您参考如下方法:

您不能将图像添加到列表框。您将需要使用另一个小部件,例如 ttk.Treeview 小部件。