Почему перестает работать скрипт PyQt?

В файле telegram.logic лежит скрипт для бота

from aiogram import Bot, Dispatcher
from aiogram.types import Message
from core.handlers.basic import get_start
from core.settings import settings
import asyncio
import logging


async def start_bot(bot: Bot):
    await bot.send_message(settings.bots.admin_id, text='Бот запущен!')


async def stop_bot(bot: Bot):
    await bot.send_message(settings.bots.admin_id, text='Бот остановлен!')


async def start():
    logging.basicConfig(level=logging.INFO,
                        format="%(asctime)s - [%(levelname)s] - %(name)s - "
                               "(%(filename)s).%(funcName)s(%(lineno)d) - %(message)s")

    bot = Bot(token=settings.bots.bot_token, parse_mode='HTML')

    dp = Dispatcher()  # объект, который занимается получением update-ов
    dp.startup.register(start_bot)
    dp.message.register(get_start)
    dp.shutdown.register(stop_bot)

    try:
        await dp.start_polling(bot)  # включения получения update-ов
    finally:
        await bot.session.close()


if __name__ == '__main__':
    asyncio.run(start())

В main файле лежит такой класс

class MainMenu(QtWidgets.QMainWindow):
    def __init__(self, login, parent=None):
        super().__init__(parent)
        self.ui = UiMain()
        self.ui.setupUi(self)

        self.ui.pushButton.clicked.connect(self.training)
        self.ui.pushButton_2.clicked.connect(self.sleeping)
        self.ui.pushButton_3.clicked.connect(self.planning)
        self.ui.pushButton_4.clicked.connect(self.eating)

        self.ui.pushButton_5.clicked.connect(self.add_tg_login)

        self.login = login

        self.check_db = CheckThread()
        self.check_db.mysignal.connect(self.signal_handler)

        if self.check_db.log_is_in_base(self.login):
            self.start_bot()

    def start_bot(self):
        asyncio.run(telegram_logic.start())

    def training(self):
        pass

    def sleeping(self):
        pass

    def planning(self):
        pass

    def eating(self):
        self.eating_menu = Eating(self.login)
        self.close()
        self.eating_menu.show()

    def add_tg_login(self):
        if self.ui.lineEdit.text():
            self.check_db.add_login_tg(self.login, self.ui.lineEdit.text())

    def signal_handler(self, value):
        if value == 'Вы успешно добавили телеграм!':
            QtWidgets.QMessageBox.about(self, 'Оповещение', value)
            # asyncio.run(telegram_logic.start())
        else:
            QtWidgets.QMessageBox.about(self, 'Оповещение', value)
        self.ui.lineEdit.setText('')

При срабатывании функции start_bot(), телеграм бот запускается, а PyQt скрипт намертво виснет. С чем это связано и как это можно исправить?


Ответы (0 шт):