|
4 / 4 / 0
Регистрация: 07.03.2019
Сообщений: 249
|
|
PyQt5 Pyqt5+TelegramBot25.03.2023, 16:30. Показов 2263. Ответов 20
Метки нет (Все метки)
Здравствуйте! Подскажите, пожалуйста, как можно соединить Бота в Телеграме и Графический интерфейс в pyqt5?
Например: Создается окно с 2 кнопками "ВКЛ" и "ВЫКЛ", которые, непосредственно, отвечают за включение и выключение какой-либо функции (Например, функция, которая будет выводить в терминале: 1, 2, 3, 4, 5 и т.д.) И создается меню в телеграм-боте с теми же двумя кнопками, отвечающими за ту же функцию с ее "включением" и выключением". Можете, пожалуйста, привести пример подобной реализации?
0
|
|
| 25.03.2023, 16:30 | |
|
Ответы с готовыми решениями:
20
Все методы и атрибуты PyQt5.QtGui PyQt5.Qtwdigets и QtCore PyQt5 Error while finding module specification for 'PyQt5.uic.pyuic' (ModuleNotFoundError: No module named 'PyQt
|
|
1566 / 739 / 321
Регистрация: 02.05.2020
Сообщений: 1,654
|
|
| 26.03.2023, 22:14 | |
|
Бот может "жить" в отдельном потоке, получать стандартно через API телеги (или как там устроено) события выбора меню от собеседника и пересылать эту информацию в GUI используя стандартный механизм qt сигналов-слотов.
0
|
|
|
4 / 4 / 0
Регистрация: 07.03.2019
Сообщений: 249
|
|
| 27.03.2023, 02:02 [ТС] | |
|
kapbepucm, Я попробовал просто запустить участок кода: bot.polling - в отдельном потоке через threading.Thread
В принципе, все работает так, как мне нужно. Но вот как этот поток прервать?
0
|
|
|
1566 / 739 / 321
Регистрация: 02.05.2020
Сообщений: 1,654
|
|
| 27.03.2023, 21:04 | |
|
А как вы его (бота) останавливаете без GUI?
0
|
|
|
4 / 4 / 0
Регистрация: 07.03.2019
Сообщений: 249
|
||||||
| 27.03.2023, 23:27 [ТС] | ||||||
|
kapbepucm, А как его остановить с GUI? Поделитесь, пожалуйста
Добавлено через 5 минут В двух словах, у меня процесс с запуском бота (именно этот bot.polling) происходит в одном классе:
0
|
||||||
|
1566 / 739 / 321
Регистрация: 02.05.2020
Сообщений: 1,654
|
|
| 28.03.2023, 22:01 | |
|
Но в этом коде я наблюдаю аж 2 потока
Cуть суть такова, надо в цикле потока вызвать QCoreApplication.processEvents, что будет ловить события из GUI которые предназначены этому потоку (в данном случае некий сигнал завершения) Лучше будет использовать QThread вместо питонского threading.Thread Сигнал завершения можно связать также с заменой флага stop_thread
0
|
|
|
1566 / 739 / 321
Регистрация: 02.05.2020
Сообщений: 1,654
|
||||||
| 29.03.2023, 17:50 | ||||||
|
пример, изучайте
![]()
всё, что происходит в def run(self): это в отдельном потоке и туда передаётся сигнал завершения из потока GUI
1
|
||||||
|
Модератор
|
||||||
| 30.03.2023, 15:41 | ||||||
|
kapbepucm, очень плохой пример...
1
|
||||||
|
1566 / 739 / 321
Регистрация: 02.05.2020
Сообщений: 1,654
|
|
| 30.03.2023, 18:12 | |
|
Fudthhh, так это же (мой пример) не про бота, а как чтото передать в цикл потока. От бота там только название
0
|
|
|
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,762
|
|||||||
| 31.03.2023, 07:24 | |||||||
|
типа
0
|
|||||||
| 31.03.2023, 10:34 | ||
|
0
|
||
|
Модератор
|
|
| 31.03.2023, 10:58 | |
|
vic5710, вариаций много, но правильнее всего бот должен создаваться в отдельном файле в виде класса, а потом уже использоваться.
iamvic, согласен, вообще вызов QCoreApplication.processEvents() считаю костылем который не должен применяться. Добавлено через 5 минут vic5710, как вариант еще можно использовать не декораторы, а вызов метода бота на добавление обработчика, выглядит должен как то так: bot.add_message_handler()
0
|
|
|
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,762
|
|||||||
| 31.03.2023, 11:36 | |||||||
|
Fudthhh, iamvic,
минимальный пример для Qt
0
|
|||||||
|
Модератор
|
|
| 31.03.2023, 13:26 | |
|
vic5710, действительно, тогда уж чего мелочиться, весь код должен быть написан ассемблере...
Даже если использовать предложенный тобою вариант, то зачем использовать requests и json в qt, используй QtNetwork.QUdpSocket, и QtCore.QJsonDocument.
0
|
|
| 31.03.2023, 17:03 | |||||||||||||||||
0
|
|||||||||||||||||
|
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,762
|
|
| 31.03.2023, 17:28 | |
|
0
|
|
|
Модератор
|
|
| 31.03.2023, 17:30 | |
|
iamvic, при написании достаточно больших приложений на Qt, которые работают с различными интерфейсами (блокирующее чтение QSerialPort, QTcpSocket, QUdpSocket), огромные модели (QAbstractItemModel, QTableModel практически на миллиарды строк и столько же колонок), я ни разу не использовал сие конструкцию. Я не спорю что она используется под капотом и это оправдано, но обычному разработчику сие вещь не нужна. Возможно я ошибаюсь, но я не могу представить себе случай (кроме не оптимизированного говнокода), в котором бы была необходимость использовать QCoreApplication.processEvents().
Добавлено через 1 минуту vic5710, но почему то ты не хочешь использовать библиотеку telebot, и зачем то призываешь использовать requests для этих целей.
0
|
|
|
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,762
|
||
| 31.03.2023, 17:40 | ||
|
0
|
||
|
1566 / 739 / 321
Регистрация: 02.05.2020
Сообщений: 1,654
|
|||
| 31.03.2023, 20:02 | |||
|
0
|
|||
| 02.04.2023, 08:19 | |||||||
2
|
|||||||
| 02.04.2023, 08:19 | |
|
Помогаю со студенческими работами здесь
20
PyQt5 Pyqt5 Не работает PyQt5
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|