Мне нужно создать виджет в отдельном потоке и установить MainWindow для него как родительский виджет. Невозможно избежать создания потока.
В конструкторе нового виджета я указываю указатель на MainWindow, но даю
QObject :: setParent: невозможно установить родительский элемент, новый родитель находится в другом потоке
Как это решить?
PS Детские виджеты могут быть многочисленными.
Это невозможно. Для получения дополнительной информации см. Следующую ссылку на код:
В частности, вам следует обратить внимание на это предупреждение:
"qWarning (" QObject :: setParent: не может установить родительский, новый родительский элемент в другом потоке ");
который вы получили в командной строке на основе вашего вопроса, так что все это ожидается.
Как говорится в предупреждении, вам нужно убедиться, что родительское дело происходит в одном и том же потоке между родителем и дочерним элементом.
Невозможно избежать создания потока. Как это решить?
Я боюсь, что вам нужно будет реорганизовать код, переместив это из потока в то же самое, где родитель или/и не имеет отдельного потока вообще.
На основе информации в вашем вопросе, в настоящее время, невозможно сказать больше, так как мы еще не полностью знаем функциональность вашего другого потока.
Надеюсь, это поможет объяснить это.
Вы не можете создавать виджеты пользовательского интерфейса вне основного потока