July 22, 2019, 4:08 a.m.

Если приложение бежит в и другом потоке нежели поток QML

qt, QML C++

Всем привет.
Столкнулся с такой проблемой при переходи в приложении с quick1 на quick2
QQmlEngine: Illegal attempt to connect to TestApp(0x5572a66ddbe0) that is in a different thread than the QML engine QQmlEngine(0x5572a672b900.

Может кто знает правится ли это или что то в приложении нехватает еще?
Спасибо.

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.
13

Привет.

Трудно точно сказать, что именно вызывает ошибку. Там нет объектов, которые пересылаются по потокам? Например QTimer?

Пока ответить не могу. Знаю что приложуха в другом потоке бежит.
Нашел пока в исходниках Qt от куда прилетает ошибка
Qt на 131 строке. Другой инфы пока не накопал.

Раньше использовался QtDeclarative и вот такое ощущение что это как то этого касается.
Еще нашел гитовый мердж для этого класса QtDeclarative

  • July 22, 2019, 5:04 a.m.
  • (edited)

В общем есть клиент который бежит не в том потоке что сама аппликация. В это проблема. Теперь понять как это исправить(

Нету никаких мыслей на сей счет?)

Были бы мысли, ответил бы. Чистый созданный проект без этих ошибок? Если нет, то нужно искать, где с потоками баловство происходит.

Ну проблема именно в переходе с 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 или отказываться от них. Ничего не поделаешь...

Советую использовать нечто такое или такое

Comments

Only authorized users can post comments.
Please, Log in or Sign up
Looking for a Job?
25,000.00 руб. - 30,000.00 руб.
Разработчик Qt/C++
Barnaul, Altai Krai, Russia

For registered users on the site there is a minimum amount of advertising

z
Sept. 14, 2019, 7:30 a.m.
zhdv06

C++ - Test 001. The first program and data types

  • Result:93points,
  • Rating points8
AQ
Sept. 13, 2019, 1:49 p.m.
Ask Questions

C++ - Test 005. Structures and Classes

  • Result:83points,
  • Rating points4
B
Sept. 12, 2019, 3:42 a.m.
Baobab

C++ - Test 005. Structures and Classes

  • Result:58points,
  • Rating points-2
Last comments
Sept. 14, 2019, 5:08 p.m.
Misha Lebedev

Приветствую вас Евгений , давно наблюда за развитием вашего замечательного портала, много полезно тут нашел , переодически зачитываюсь. Теперь по сушеству, делаю портал и там идеально ложи…
Sept. 10, 2019, 4:38 p.m.
Evgenij Legotskoj

function view для модели Article и LikeDislike.LIKE будет выглядеть так def like(request, pk): obj = Article.objects.get(pk=pk) try: likedislike = LikeDislike.objects.get(cont…
OK
Sept. 10, 2019, 4:10 p.m.
Oliver Kolesnikov

тут view написан в class based view, если честно ничего не могу разобрать. Как это всё переписать в function view?
o
Sept. 4, 2019, 3:54 a.m.
omortie

thanks for the application, it helps me a lot
Sept. 1, 2019, 2:51 p.m.
Evgenij Legotskoj

Добрый день, Александр. Это Forward Declaration - Предварительное объявление. Позволяет объявить класс без подключения заголовочного файла в заголовочном файле другого класса. Такое об…
Now discuss on the forum
R
Sept. 16, 2019, 7:09 a.m.
RED_Spider

прочитайте https://doc.qt.io/archives/qt-5.11/osx-deployment.html QMAKE_POST_LINK += "~/Qt/5.12.0/clang_64/bin/macdeployqt $${TARGET}.app $$escape_expand( \\n\\t )"
Sept. 16, 2019, 6:41 a.m.
Mihailll

Метод toASCII нельзя применить, а .toHex возвращает block: "000b0500000006006100610061" Но тут есть как минимум несколько букв. Как можно получить не цифры, а текст с цифрами?
M
Sept. 16, 2019, 2:51 a.m.
Mark

У класса есть метод AddPath(). Можно ли передать URL.
p
Sept. 15, 2019, 7:10 a.m.
pstMem

Всем привет При выполнении кода под отладкой msvc x64 через некоторое время работы получаю ошибку assert failure in qlist, приложение вылетает. Как правильно настроить qt чтобы при данной о…
Sept. 14, 2019, 8:13 a.m.
Mihailll

Можно использовать Flickable, растнянуть на него картинку и двигать
EVILEG
About
Services
© EVILEG 2015-2019
Recommend hosting TIMEWEB