LINUX.ORG.RU

QML отладчик брякает постоянно

 ,


0

4

Постоянно брякает в режиме отладки отладчик (под Qt Creator + Qt5.15.2), т.е. приложение вываливается в QML листинг, потом можно продолжить и так очень много раз при каждом запуске. Без сообщений. Можно лишь подозревать почему. Это очень мешает отладке.

Я полагаю что это связано с тем что 1) при написании компонентов все компоненты имеют проперти со значениями по умолчанию 2) они переназначаются в тех местах где применяются А отладчик параноит что рушатся bindings с пропертями. Но это домыслы.

Вопрос - как избавиться от навязчивых бряков?

Ниже листинг компонента, в котором брякает. Т.е. если его подключать в другой файл, то будет в нём молча брякать. А если его взять и через буфер обмена вставить в главное приложение (и ессно поправить там где root), то брякать не будет.

Image 
{
    id: root
    property bool birdsVisible: true
    property bool soundOn: true
    property bool soundForcedOffFromOn: false 
    signal clicked()
    source: (birdsVisible) ? "BirdRed.png" : "BirdBlue.png"
    Image
    {
        id: clouds
        source: (root.soundOn) ? "DashedCirclesGreen.png" : "DashedCirclesGray.png"
        RotationAnimator {
            running: root.soundOn || root.soundForcedOffFromOn
            target: clouds
            from: 0;
            to: 360
            duration: 20000
            loops: Animation.Infinite
        }
        anchors.centerIn: parent   //--------------  брякает тут
    }
    MouseArea{
        onClicked: root.clicked()
        anchors.fill: parent
    }
}



Последнее исправление: PavelS (всего исправлений: 8)

Брякает на centerIn: parent? Похоже что оно кофликтует с анимацией, не? Что странно, ведь анимация относительно центра должна быть по дефолту.

Pavval ★★★★★
()
Ответ на: комментарий от Pavval

Да, удалил аниматор и брякать конкретно в этом месте перестало. Я был уверен что аниматор не при делах, но эксперимент это опроверг. Короче, ничего не понимаю, что за левые бряки, да ещё молчком, в «вывод приложения» на ошибки пишет, а в этом случае нет.

PavelS
() автор топика
Ответ на: комментарий от Pavval

Закомментировал аниматор, брякать перестало. Заменил

anchors.centerIn: parent

на

        x: (parent.width - width)/2
        y: (parent.height - height)/2

и брякать стало даже без аниматора

PavelS
() автор топика

Попробовал сократить компонент. Так брякает.

Image 
{
    id: root
    property bool birdsVisible: true
    source: (birdsVisible) ? "BirdRed.png" : "BirdBlue.png"
    Image
    {
        id: clouds
        source: "DashedCirclesGray.png"
        x: (parent.width - width)/2
        y: (parent.height - height)/2
    }
}

А так уже нет - source не меняется.

{
    id: root
//    property bool birdsVisible: true
//    source: (birdsVisible) ? "BirdRed.png" : "BirdBlue.png"
    source: "BirdBlue.png"
    Image
    {
        id: clouds
        source: "DashedCirclesGray.png"
        x: (parent.width - width)/2
        y: (parent.height - height)/2
    }
}

PavelS
() автор топика

import'ы в qml правильные? Пути к картинкам верные?

Очень полезно в плюсовом коде для QmlEngine добавить перехват ошибок в runtime, достаточно подписаться на сигнал QQmlEngine::warnings(const QList<QQmlError> &warnings)

Evil_And ★★
()
Ответ на: комментарий от Evil_And

Правильные или нет не знаю, но оно не ругается и всё работает отлично. О серьёзных ошибках пишет в «вывод приложения» или даже в консоль, если пускать без отладчика. Насчет варнингов дельная мысль, но ничего не дала. Оно варнило при явных ошибках, которые и так писались в AppOutput.

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

PavelS
() автор топика
Ответ на: комментарий от PavelS

Но следующий этап - интеграция в «плюсы» и тут я жду что оно меня заколебёт, там уже без отладчика никак.

Ну, не знаю. Я попытался QML отладчик использовать, он не работал, как-то и без него получается.

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

Да, у меня тоже отладчик заработал не с первого раза. Он не дружит с консолью, например - это сам нашёл и отрепортил. Но с отладчиком таки лучше. Когда будет намучено дополна всего в яваскрипте и надо будет посмотреть что да где там.

PavelS
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.