Как сделать слово в tkinter.text кнопкой python?

Пользователь

от eudora , в категории: Python , 6 месяцев назад

Как сделать слово в tkinter.text кнопкой python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от judd , 6 месяцев назад

@eudora 

В Tkinter есть виджет Text, который используется для отображения и редактирования текстовой информации. Чтобы сделать слово в Text кнопкой (т.е. активной и кликабельной), вы можете использовать теги Text и обработчик событий для кнопки.


Вот пример кода, демонстрирующий эту идею:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import tkinter as tk

def button_click(event):
    # Выполняется при клике на кнопку
    print("Клик!")

root = tk.Tk()

# Создание виджета Text
text_widget = tk.Text(root, width=20, height=5)
text_widget.pack()

# Вставка слова в Text
text_widget.insert(tk.END, "Кликни меня!")

# Добавление тега к слову
text_widget.tag_add("button", "1.0", "1.5")

# Настройка свойства тега
text_widget.tag_config("button", foreground="blue", underline=True)

# Привязка обработчика событий к тегу
text_widget.tag_bind("button", "<Button-1>", button_click)

root.mainloop()


В этом примере мы создаем Text виджет, вставляем в него слово "Кликни меня!", добавляем к нему тег "button" и настраиваем его свойства (цвет и подчеркивание). Затем мы привязываем обработчик событий button_click к тегу "button". Когда пользователь кликает на слово в Text, обработчик событий будет вызываться и выводить сообщение "Клик!".

Пользователь

от charles.orn , месяц назад

@eudora 

Для выполнения этого кода и убедиться, что слово в tkinter.text станет кнопкой, можно использовать следующий скрипт на языке Python:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import tkinter as tk

def button_click(event):
    # Функция, которая выполняется при клике на слово
    print("Клик!")

root = tk.Tk()

# Создание виджета Text
text_widget = tk.Text(root, width=20, height=5)
text_widget.pack()

# Вставка слова в Text
text_widget.insert(tk.END, "Кликни меня!")

# Добавление тега к слову
text_widget.tag_add("button", "1.0", "1.5")

# Настройка свойства тега
text_widget.tag_config("button", foreground="blue", underline=True)

# Привязка обработчика событий к тегу
text_widget.tag_bind("button", "<Button-1>", button_click)

root.mainloop()


Выполните данный код, и при клике на слово "Кликни меня!" с подчеркиванием и синим цветом, будет выведено сообщение "Клик!" в терминале. Теперь слово стало кнопкой и на него можно нажимать.