【发布时间】:2019-06-28 20:55:46
【问题描述】:
我有一个 tkinter 标签,其中包含要记住的文本中每个单词的首字母。我怎样才能将这些字母(以空格分隔)中的每一个变成按钮,按下时显示原始单词?
【问题讨论】:
-
您使用标签而不是按钮是否有原因?
-
@BryanOakley 我希望文本以一定长度换行
标签: python-3.x button tkinter text label
我有一个 tkinter 标签,其中包含要记住的文本中每个单词的首字母。我怎样才能将这些字母(以空格分隔)中的每一个变成按钮,按下时显示原始单词?
【问题讨论】:
标签: python-3.x button tkinter text label
最简单的解决方案是为每个单词使用一个标签。如果您移除边框并将它们打包在一起,它们看起来就像是一个标签。
对于每个标签,将一个函数绑定到鼠标按钮,您可以在该函数中更改标签的文本。您可以将单词与标签对象相关联,以便您可以在绑定函数中轻松访问它。
例子:
import tkinter as tk
def reveal(event):
label = event.widget
label.configure(text=label.full_text)
root = tk.Tk()
root.geometry("400x100")
word_frame = tk.Frame(root, borderwidth=1, relief="sunken")
word_frame.pack(side="top", fill="x", padx=20, pady=20)
term = "Impossible Mission Force"
for word in term.split():
letter = word[0].upper()
label = tk.Label(word_frame, text=letter, borderwidth=0,
font=("Helvetica", 18))
label.full_text = word
label.pack(side="left")
label.bind("<1>", reveal)
tk.mainloop()
【讨论】: