Как создать всплывающее окно с текстом при нажатии на кнопку, расположенную внутри контента?

  • 25 августа 2023 г. 14:46
Ответы на вопрос 2
Для создания всплывающего окна с текстом при нажатии на кнопку, можно использовать модуль tkinter вместе с библиотекой Telebot на Python. 

Вот пример кода, который позволит создать такое окно:

```python
import telebot
from telebot import types
import tkinter as tk

# Создаем экземпляр бота
bot = telebot.TeleBot('TOKEN')

# При нажатии на кнопку "Старт"
@bot.message_handler(commands=['start'])
def start_message(message):
    keyboard = types.InlineKeyboardMarkup()
    callback_button = types.InlineKeyboardButton(text="Показать всплывающее окно", callback_data="show_popup")
    keyboard.add(callback_button)
    bot.send_message(chat_id=message.chat.id, text="Нажмите кнопку, чтобы показать всплывающее окно", reply_markup=keyboard)

# При нажатии на кнопку "Показать всплывающее окно"
@bot.callback_query_handler(func=lambda call: call.data == "show_popup")
def show_popup(call):
    window = tk.Toplevel()
    window.title("Всплывающее окно")
    label = tk.Label(window, text="Текст во всплывающем окне")
    label.pack()

    # Создаем кнопку "Ок", при нажатии на которую окно будет закрыто
    ok_button = tk.Button(window, text="Ок", command=window.destroy)
    ok_button.pack()

    window.mainloop()

# Запускаем бота
bot.polling()
```

В этом примере используется метод `send_message` для отправки сообщения с кнопкой "Показать всплывающее окно". При нажатии на кнопку, вызывается функция `show_popup`, которая создает всплывающее окно с текстом "Текст во всплывающем окне" и кнопкой "Ок", при нажатии на которую окно будет закрыто.

Убедитесь, что замените 'TOKEN' на свой токен бота, чтобы код работал правильно.
answer_callback_query функция вызывается для ответа на запрос пользователя, который был сделан с использованием inline keyboard. Параметр show_alert=True означает, что при получении ответа пользователю будет показано всплывающее уведомление.
Похожие вопросы