Bad-Coder
@Bad-Coder
Костыль мира.

QObject::setParent: Cannot set parent, new parent is in a different thread?

Ошибка происходит сдесь:

# Run quest.
def run_quest(self):
    """Run quest."""
    def run():
        if self.quest is None or self.quest == '':
            disassembled = self.disassembly(self.run_quest)

            self.message(icon=self.messages.Critical, text='Quest not choosed.', detailed_text=disassembled)

        else:
            system(f'python {self.quest} && pause')

    quest_thread = Thread(target=run)
    quest_thread.start()


Если self.quest не None или не '' то все запускаеться нормально.
Но если self.quest равно None или '', выводиться следущее, и программа зависает и закрываеться.

QObject: Cannot create children for a parent that is in a different thread.
(Parent is QApplication(0x27582ef6920), parent's thread is QThread(0x27582ee3280), current thread is QThread(0x27584fb6640)
QObject::setParent: Cannot set parent, new parent is in a different thread
QObject::setParent: Cannot set parent, new parent is in a different thread


Полный проект.

Что делать?
  • Вопрос задан
  • 53 просмотра
Решения вопроса 1
Bad-Coder
@Bad-Coder Автор вопроса
Костыль мира.
Решение:
Создаем файл с названием console_quest_constructor_error.vbs.
Пишем туда:

msgbox "Quest not choosed.", 16, "Constructor."

Дальше немного пере-делываем функцию:

# Run quest.
def run_quest(self):
    """Run quest."""
    def run():
        if self.quest is None or self.quest == '':
            startfile('console_quest_constructor_error.vbs')

        else:
            system(f'python {self.quest} && pause')

    quest_thread = Thread(target=run)
    quest_thread.start()


Минус этого решения:
Нету detailedText,
+ 1 файл к конструктору.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы