首页 > 解决方案 > 我可以创建一个跨文本小部件内多行的 Tkinter 画布吗?

问题描述

我想创建一个 Text 小部件,可以将画布插入到文本中。我几乎已经完美了,但是我需要画布占据两行空间。我希望第一行“Tom 24/11/2019”与画布顶部对齐,第二行“Hi Jim”与画布底部对齐。我正在尝试做的事情有可能吗?

import tkinter as tk

sender='Tom'
dt='24/11/2019'
message='Hi Jim!'

root = tk.Tk()

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

text.window_create(tk.END, window = tk.Canvas(root,bg='red',width=50,height=50)) # Example 2

text.tag_configure("sender", font="Arial 12 bold")
text.tag_configure("message", font="Arial 10",lmargin1=55,lmargin2=55)
text.tag_configure("date", font="Arial 8")

text.insert("end", sender.title()+' ',"sender")
text.insert("end", dt+'\n','date')
text.insert("end", message+'\n\n', 'message')


root.mainloop()

标签: pythoncanvastkintertexttk

解决方案


不,嵌入式小部件在文本小部件中不能超过一行。


推荐阅读