【问题标题】:How can you make each word in a tkinter label a button?你如何让 tkinter 标签中的每个单词成为一个按钮?
【发布时间】:2019-06-28 20:55:46
【问题描述】:

我有一个 tkinter 标签,其中包含要记住的文本中每个单词的首字母。我怎样才能将这些字母(以空格分隔)中的每一个变成按钮,按下时显示原始单词?

【问题讨论】:

  • 您使用标签而不是按钮是否有原因?
  • @BryanOakley 我希望文本以一定长度换行

标签: python-3.x button tkinter text label


【解决方案1】:

最简单的解决方案是为每个单词使用一个标签。如果您移除边框并将它们打包在一起,它们看起来就像是一个标签。

对于每个标签,将一个函数绑定到鼠标按钮,您可以在该函数中更改标签的文本。您可以将单词与标签对象相关联,以便您可以在绑定函数中轻松访问它。

例子:

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()

【讨论】:

  • 我怎样才能让标签在框架内成行排列,使它们看起来像文本?我正在处理整段文本。
猜你喜欢
  • 2016-10-16
  • 2020-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-12
  • 1970-01-01
  • 1970-01-01
  • 2012-08-12
相关资源
最近更新 更多