Главная

Главная

Сообщество

Сообщество

Форум

Форум

STM32

STM32

Электроника

Электроника

Raspberry Pi

Raspberry Pi

Уведомления
Очистить всё

Ошибка в 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 MT
(@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 MT
(@aveal)
Top level Admin

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


ОтветЦитата
Опубликовано : 16.10.2025 13:52
(@strizh)
Level 1

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


ОтветЦитата
Автор темы Опубликовано : 16.10.2025 17:18
Обзор конфиденциальности

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