Как сделать так, чтобы каждое слово в ярлыке tkinter было кнопкой? - PullRequest
0 голосов
/ 28 июня 2019

У меня есть метка tkinter, содержащая первые буквы каждого слова текста для запоминания.Как я могу превратить каждую из этих букв (разделенных пробелами) в кнопки, которые показывают оригинальное слово при нажатии?

1 Ответ

1 голос
/ 29 июня 2019

Самое простое решение - использовать метку для каждого слова.Если вы удалите границу и упакуете их вместе, будет выглядеть, что они представляют собой одну метку.

Для каждой метки свяжите функцию с кнопкой мыши, и в этой функции вы можете изменить текст метки.Вы можете связать слово с объектом метки, чтобы вы могли легко получить к нему доступ в связанной функции.

Пример:

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