BlinCT22 июля 2019 г. 14:08
Если приложение бежит в и другом потоке нежели поток QML
Всем привет.
Столкнулся с такой проблемой при переходи в приложении с quick1 на quick2
QQmlEngine: Illegal attempt to connect to TestApp(0x5572a66ddbe0) that is in a different thread than the QML engine QQmlEngine(0x5572a672b900.
Может кто знает правится ли это или что то в приложении нехватает еще?
Спасибо.
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Вам это нравится? Поделитесь в социальных сетях!
Комментарии
Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Пожалуйста, авторизуйтесь или зарегистрируйтесь
B
- Bogdannn
- 28 марта 2024 г. 2:15
C++ - Тест 001. Первая программа и типы данных
- Результат:46баллов,
- Очки рейтинга-6
Последние комментарии
Qt Linux - Урок 001. Автозапуск Qt приложения под Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Урок 007. Работаем с ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий Кононенко5 февраля 2024 г. 9:50
EVA25 декабря 2023 г. 18:30
Boost - статическая линковка в CMake проекте под Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
Qt/C++ - Урок 056. Подключение библиотеки Boost в Qt для компиляторов MinGW и MSVC Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
Сейчас обсуждают на форуме
Как получить в массив значения из связанной модели? Спасибо, разобрался:))
AC
QML Обнулить значения SpinBox Доброго времени суток, не могу разобраться с обнулением значение SpinBox находящего в делегате. import QtQuickimport QtQuick.ControlsWindow { width: 640 height: 480 visible: tr…
Alexandru Codreanu19 января 2024 г. 19:57
BlinCT27 декабря 2023 г. 16:57
Дмитрий10 января 2024 г. 12:18
Evgenii Legotckoi12 декабря 2023 г. 14:48
Привет.
Трудно точно сказать, что именно вызывает ошибку. Там нет объектов, которые пересылаются по потокам? Например QTimer?
Пока ответить не могу. Знаю что приложуха в другом потоке бежит.
Нашел пока в исходниках Qt от куда прилетает ошибка
Qt на 131 строке. Другой инфы пока не накопал.
Раньше использовался QtDeclarative и вот такое ощущение что это как то этого касается.
Еще нашел гитовый мердж для этого класса QtDeclarative
В общем есть клиент который бежит не в том потоке что сама аппликация. В это проблема. Теперь понять как это исправить(
Нету никаких мыслей на сей счет?)
Были бы мысли, ответил бы. Чистый созданный проект без этих ошибок? Если нет, то нужно искать, где с потоками баловство происходит.
Ну проблема именно в переходе с 1 на 2 quick. Они воткнули проверку. Это то что я писал про 131 строку в коде.
То есть проблема не в том, что у вас там код написан как попало, а то, что Qt, по-вашему, неправильно что-то написали?
Ну кинь им реквест на багтрекер.
Вот только что нашел в инете, у человека такая же ошибка. Вроде бы таже самая проблема
https://stackoverflow.com/questions/37633709/how-to-create-qtquick-window-outside-the-main-thread
Скорее всего в коде не правильно потоки используются.Вот на форуме пишут кое что интересное
Да вот нашел тоже инфу. Эти ... хорошие люди из за того что решили отказатся от обычных шариков они во втором quick2 впилили проверку что я выше и указал, типа теперь в разных потоках нельзя так делать как было раньше. В общем похерили. В 5.7 еще работало а потом они порешали и вот ...
Полагаю, что с их стороны это было оправданным решением, учитывая, что QML поддерживает многопоточность. Видимо из-за этого придётся искать или иной способ использования shared_ptr или отказываться от них. Ничего не поделаешь...
Советую использовать нечто такое или такое