Всем привет! Есть кто работал с pyqt6? У меня почему-то

сигналы в одном месте работают а в другом - нет =/

Есть класс синглтон для общих соединений

python
class Connections(QObject):
def __new__(cls):
# Тут код для синглтона

computeStarted = pyqtSignal(name="computeStarted")
btnComputeStartPressed = pyqtSignal(name="btnComputeStartPressed")

Создаю экземпляры в классах где буду использовать эти сигналы:

WindowTitlebar:
Здесь _on_btn_start_pressed присоеденена к нажатию кнопки
python
def __init__(...):
self.gui_connections.computeStarted.connect(self._on_compute_started) # соединяю computeStarted с методом _on_compute_started

def _on_btn_start_pressed(self): # !!! 1 !!! этот метод вызывается при нажатии кнопки
self.gui_connections.btnComputeStartPressed.emit()

def _on_compute_started(self): # не вызывается хотя соединено. !!! 5 !!!
print("Started <>")
self.start_work_button.setDisabled(True)

ApplicationContentWidget:
python
def __init__(...):
self.gui_connections.btnComputeStartPressed.connect(self.on_start_pressed) # соединяю btnComputeStartPressed с

def on_start_pressed(self): # !!! 2 !!!
cur_widget = self.stacked_widget.currentWidget()
cur_widget.process_pressed() # вызывает process_pressed из T2IWidget

T2IWidget:
python
def process_pressed(self): # !!! 3 !!!
params = {
"prompt": self.promt_text.text(),
"negative_prompt": self.negative_text.toPlainText()
}
self.worker_thread = QThread()
self.worker = Text2ImageWorker(self.webapi, params)
self.worker.moveToThread(self.worker_thread)

self.worker_thread.started.connect(self.worker.start)
self.worker.finished.connect(self.worker_thread.quit)
self.worker.finished.connect(self._on_worker_finished)
self.worker_thread.start()

self.progress_worker_thread = QThread()
self.progress_worker = ProgressCheckerWorker(self.webapi)
self.progress_worker.moveToThread(self.progress_worker_thread)
self.progress_worker_thread.started.connect(self.progress_worker.start)
self.progress_worker.finished.connect(self.progress_worker_thread.quit)
self.progress_worker_thread.start()

self.gui_connections.computeStarted.emit() # не работает !!! 4 !!!

Почему оно по началу отрабатывает но дальше сигнал computeStarted не хочет работать?

2 ответов

32 просмотра

Это что за манускрипт)

🇷🇺 Artur-Leonov (Depish) Автор вопроса
S H
Это что за манускрипт)

Разобрался кстати, оказалось что синглтон это какой-то не синглтон в питоне. Начал передовать по иерархии этот класс с соединениями и все заработало. Хотя проверял инстансы у всех объектов соединение и адрес был один и тот же у всех. Тогда почему не работают слоты не понятно =/

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

Обсуждают сегодня

Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
Это переведённый текст с английского. Я не говорю на русском, но могу использовать переводчик Телеграм. Приветствую! Я начинающий веб-разработчик и все еще учусь. В настояще...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
2
А не хотим ли мы развлечься? 😉 Но так чтобы с пользой для наших профессиональных навыков?? 👨‍🎓👩‍🎓 Предлагаю на октябрь запланировать тестовый запуск новой командной игры "Игр...
Andrii Kurdiumov
2
Привет всем! Почему этот код не срабатывает при добавлении или удалении пользователя из чата? bot.on('chat_member', async (ctx) => { console.log(ctx); }) bot.launch({allo...
Alexander
5
у кого сколько оперативы на базе данных ?
АДИЛЬБЕК
4
Через бот апи возможно получить ID стикерпака? Не ссылку.
Vexylon [АФК до 09.09]
5
Привет Хочу сделать аналог iCloud’а для своих проектов, чтобы пользовательская информация хранилась в облаке, была доступна во всех сервисах, её можно было подсасывать везде)...
Виталий
9
В тг можно спарсить всех кто пишет в группе? Если список участников скрыт
S
3
код Event::listen('cms.page.display', function (&$content, $slug, $page, $html) { if (is_object($content)) { dump($content); } else { dump($s...
Point 111
3
Доброе утро, мультиязычные сайты делал кто-нибудь? Какие подводные камни? Нужно чего нибудь допом ставить? Как поступить? В теории сделать две папки ru en и туда кидать страни...
Racoon Mitya
2
Карта сайта