我正在写一个类似记事本的项目,我需要在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)
但是当我运行它时,它只显示一张白色图像,上面没有任何内容。
我的代码有什么不对?有人可以向我解释一下
答案 0 :(得分:3)
您可以在使用中使用image_create
或window_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()