Tkinter:如何将图像插入文本小部件

时间:2016-07-04 08:48:50

标签: python tkinter

我正在写一个类似记事本的项目,我需要在Tkinter Text小部件中插入一个图像(就像MS Word一样),我没有找到任何帮助我的东西。

这是我的代码:

from PIL import Image,ImageTk
from tkinter import *


text = Text(root)
root.pack()
#Insert Image

yourImage=filedialog.askopenfilename(title = "Select your image",filetypes = [("Image Files","*.png"),("Image Files","*.jpg")])
imgFile=Image.open(yourImage)
imgToInsert=ImageTk.PhotoImage(imgFile)

text.image_create("current",image=imgToInsert)

但是当我运行它时,它只显示一张白色图像,上面没有任何内容。

我的代码有什么不对?有人可以向我解释一下

2 个答案:

答案 0 :(得分:3)

您可以在使用中使用image_createwindow_create两个例子

此示例不使用PIL,只使用只能获取gif图像文件的PhotoImage。

示例代码:

import tkinter as tk

def add_image():
    text.image_create(tk.END, image = img) # Example 1
    text.window_create(tk.END, window = tk.Label(text, image = img)) # Example 2

root = tk.Tk()

text = tk.Text(root)
text.pack(padx = 20, pady = 20)

tk.Button(root, text = "Insert", command = add_image).pack()

img = tk.PhotoImage(file = "myImage.gif")

root.mainloop()

此外,在您的代码中,我看不到您如何使用所选图像。 <{1}}未在任何地方使用

答案 1 :(得分:1)

希望可以帮到你。

from PIL import Image,ImageTk
from tkinter import *
from tkinter import filedialog
root=Tk()
text = Text(root)
text.pack()
#Insert Image

yourImage=filedialog.askopenfilename(title = "Select your image",filetypes = [("Image Files","*.png"),("Image Files","*.jpg")])
#imgFile=Image.open(yourImage)
imgToInsert=ImageTk.PhotoImage(file=yourImage)

text.image_create("current",image=imgToInsert)
root.mainloop()