我试图对我的一些学生进行测试,他们需要在段落中输入缺失的单词(见图片)。我遇到的关键问题是尝试将输入框嵌入到文本段落中,这样当有间隙时,tkinter可以为学生输入一个输入框。
所需输出的草图:
代码尝试:
import tkinter as tk
root = tk.Tk()
tk.Label(root, font=("Comic Sans MS",24,"bold"),\
text="The largest bone in the human body is the").grid(row=0,column=0)
ent1 = tk.Entry(root)
ent1.grid(row=0,column=1)
tk.Label(root, font=("Comic Sans MS",24,"bold"),\
text="which is found in the").grid(row=0,column=2)
ent2 = tk.Entry(root)
ent2.grid(row=0,column=3)
tk.mainloop()
感谢您的阅读,非常感谢任何帮助。
答案 0 :(得分:3)
您可以使用window_create
方法将小部件添加到文本小部件。
这是一个快速示例,展示如何使用它将小部件嵌入到文本块中。代码在任何您想要条目小部件的位置插入包含{}
的字符串。然后,代码在窗口小部件中搜索该模式,删除它,并插入条目窗口小部件。
import Tkinter as tk
quiz = (
"The largest bone in the human body is the {} "
"which is found in the {}. It is mainly made "
"of the element {}, and is just below the {}."
)
root = tk.Tk()
text = tk.Text(root, wrap="word")
text.pack(fill="both", expand=True)
text.insert("end", quiz)
entries = []
while True:
index = text.search('{}', "1.0")
if not index:
break
text.delete(index, "%s+2c"%index)
entry = tk.Entry(text, width=10)
entries.append(entry)
text.window_create(index, window=entry)
root.mainloop()
答案 1 :(得分:1)
您可以在文本小部件中插入条目,例如下面的内容。
import tkinter as tk
root = tk.Tk()
text = tk.Text(root)
text.pack()
text.insert('end', 'The largest ')
question = tk.Entry(text, width=10)
text.window_create('end', window=question)
text.insert('end', ' in the human body is...')
root.mainloop()