@andrewMus

Как отправить сообщение из другого потока telebot?

Как мне запустить функцию Send которая находится в теле функции loop, или просто отправить сообщение из инного потока?
Вот код который не работает, точнее он работает без функции Send, но мне нужно отправлять сообщение. Заранее спасибо.
import threading
import telebot
from PyQt5 import QtWidgets
from myform import Ui_MainWindow
import sys
a=0
b=0
c=0



class mywindow(QtWidgets.QMainWindow):
    def __init__(self):
        super(mywindow, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        # подключение клик-сигнал к слоту btnClicked
        self.ui.pushButton.clicked.connect(self.btnClicked)
 
    def btnClicked(self):
        self.ui.label.setText("Вы нажали на кнопку!")
        self.ui.label.adjustSize()
        #send()
        bot.send_message("**************", 'Привет')

def loop():
    def send():
        #bot.send_message(***************", 'Привет')
        pass
        print("55")
    bot = telebot.TeleBot('**************************************************************')

    @bot.message_handler(commands=['start'])
    def start_message(message):
        bot.send_message(message.chat.id, 'Привет, ты написал мне /start')

    @bot.message_handler(content_types=['text'])
    def send_text(message):
        if message.text.lower()=="a":
            bot.send_message(message.chat.id, 'Привет')
        # ответы на вопросы...

    bot.polling()

    
t = threading.Thread(target=loop, args=())
t.start()

app = QtWidgets.QApplication([])
application = mywindow()
application.show()
  • Вопрос задан
  • 111 просмотров
Пригласить эксперта
Ответы на вопрос 2
@alekssamos
Программист любитель
Попробуй переменную bot сделать глобальной, т.е. вынести на первый уровень, сразу после импортов. Знаю, что возможно это не очень хорошая практика.
Ответ написан
Комментировать
@DmitryLink
python developer
Сделай функцию, возвращающую экземпляр TeleBot. Это нормальная практика, главное не запускать лонгпулл в нескольких потоках.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы