Я обновил свое приложение QML с Qt 5.12 до Qt 5.15.
Мое приложение загружает свои источники qml, используя следующий код:
auto* engine = new QQmlApplicationEngine(this);
...
engine->load(QUrl("qrc:/main.qml"));
Когда вызывается engine->load
, теперь я получаю следующее предупреждение, которого не было в Qt 5.12:
Qt Quick Layouts: обнаружена рекурсивная перестановка. Прерывание после двух итераций.
Как я могу найти источник этого предупреждения, чтобы исправить свой код?
Редактировать:
После двух отрицательных голосов я хотел бы уточнить цель моего вопроса.
У меня есть очень большое приложение, которое загружает большое дерево файлов qml, при этом main.qml является основным окном. Предупреждение, которое я опубликовал, исходит из панели вывода приложения без каких-либо указаний на расположение исходного файла, вызвавшего предупреждение.
Я ищу способ найти местоположение исходного файла, вызвавшее такое предупреждение. Я считаю разумным спросить, как этого добиться, и я считаю, что это общая проблема, которая возникнет у многих людей, которые обновят свой код qml до Qt 5.15. Характер такой проблемы заключается в том, что автономный пример (например, запрошенный в комментариях) не может быть предоставлен.
RowLayout
,ColumnLayout
иGridLayout
. - person Amfasis   schedule 16.07.2020GridLayout
. Мне также интересно, можно ли добавить больше журналов в ту функцию, которую вы нашли, например, указатель объекта или, в конечном счете, местоположение qml (я где-то читал это, но не могу найти). Другой вариант — добавитьconsole.log
к каждомуGridLayout
, который у вас есть (используйте некоторые навыки поиска и замены). - person Amfasis   schedule 16.07.2020