Top.Mail.Ru
Уведомления
Очистить все

Ошибка в QML: QQmlEngine: Illegal attempt to connect to Editor that is in a different thread than the QML engine QQmlApplicationEngine

(@strizh)
Level 1

Возникает такая ошибка в проекте с использованием QML, опытным путем установил что причина в этой строке:

engine.rootContext()->setContextProperty("mainEditor", editor);

Это вызывается в main(), сразу после:

Editor *editor= new Editor();

Цитата
Создатель темы Размещено : 15.10.2025 14:26
TQFP
 TQFP
(@tqfp)
Level 5

Маловато контекста...


ОтветитьЦитата
Размещено : 15.10.2025 16:30
Aveal
(@aveal)
Top level Admin

Запись от: @tqfp

Маловато контекста...

В целом да, скудно ) Но(!) Судя по тексту ошибки можно сделать предположение с почти гарантированно стопроцентной точностью, что editor перед вызовом setContextProperty перемещается в другой поток, о чем собственно ошибка и сигнализирует.

 


ОтветитьЦитата
Размещено : 16.10.2025 13:13
(@strizh)
Level 1

@aveal ага, все верно, у меня там:

editor->moveToThread(editorThread);

Получается так нельзя делать?


ОтветитьЦитата
Создатель темы Размещено : 16.10.2025 13:41
Aveal
(@aveal)
Top level Admin

Да, таким образом как у Вас можно взаимодействовать с объектами из того же потока (основного ui-потока).


ОтветитьЦитата
Размещено : 16.10.2025 13:52
(@strizh)
Level 1

@aveal Понял, спасибо! Буду думать как через сигналы-слоты организовать.


ОтветитьЦитата
Создатель темы Размещено : 16.10.2025 17:18
Поделиться:
Обзор конфиденциальности

На этом сайте используются файлы cookie, что позволяет нам обеспечить наилучшее качество обслуживания пользователей. Информация о файлах cookie хранится в вашем браузере и выполняет такие функции, как распознавание вас при возвращении на наш сайт и помощь нашей команде в понимании того, какие разделы сайта вы считаете наиболее интересными и полезными.