QML onCompleted метод

qml, qt

Доброго дня! Есть ли какой-то простой способ понять, что все дочерние компоненты созданы? Раньше мне казалось, что
console.log("Iam parent Rect") вызовется самым последним, когда создадуться все дочерние элементы, но это не так: "The order of running the onCompleted handlers is undefined." Есть красивый способо это сделать? Пока на ум приходит только в каждом Сomponent.onCompleted увеличивать счетчик созданых элементов и по достижению нужного значения считать, что все элементы созданы. Есть еще идеи?

Rectangle {
    id: idRectParent

    Сomponent.onCompleted : {
        console.log("Iam parent Rect")
    }

    Rectangle {
        id: idRectChild1
        Сomponent.onCompleted: {
            console.log("Iam Child 1")
        }
    }

    Rectangle {
        id: idRectChild2
        Сomponent.onCompleted: {
            console.log("Iam Child 2")
        }
    }   
}
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.

Do you like it? Share on social networks!

5
t
  • Jan. 18, 2020, 6:59 a.m.

А зачем? Что пытаетесь сделать? Может можно по другому реализовать?

    В приложении есть страницы с контролами. в с++ я заполняю структуры ассоциированные с контролами в qml. затем генерю сигнал о том, что все данные готовы и в qml по этому сигналу заполняю контролы значениями. так вот при переходе по страницам иногда получается так, что сигнал об установке данных в контролы приходит раньше, чем контролы создаются.. и они остаются пустыми. поэтому при заходе на страницу мне нужно понять момент, когда все контролы создадуться и только потом начать устанавливать в них значения.

    хочется сделать это в одной ф-ции, в одном месте, а не пихать обновление каждого контрола в его onCompleted метод.

      Evgenii Legotckoi
      • Jan. 20, 2020, 1:59 p.m.

      Добрый день, если честно, то у меня тоже ничего кроме счётчика на ум не приходит.

        Еще не очевидное поведение оказалось, что сигнал onVisibleChanged родительского элемента может вызваться раньше, чем вызовуться onCompleted дочерних компонентов.. как мне очень странно. А вот насчет блока Connections если объявить есть подозрение, что он создастся самым последним..(по крайней мере при тестах всегда получалось так, но это не точно :) ) т.е. попытки соеднять сигналы уже нужно осуществлять с готовыми компонентами.

          Serj Demchenko
          • Jan. 22, 2020, 6:06 a.m.

          Можете попробовать через Loader сделать, те cделать свой компонент ректангл с нужными вам полями и через Loader вызывать этот компонент , а через Connections прописать что ваш компонент отрисовался , правда это уже динамическая загрузка компонентов а не статическая как у вас в примере
          либо создать через JS createObject (разумеется потом его удалять)

            Comments

            Only authorized users can post comments.
            Please, Log in or Sign up
            AD

            C ++ - Test 004. Pointers, Arrays and Loops

            • Result:50points,
            • Rating points-4
            m

            C ++ - Test 004. Pointers, Arrays and Loops

            • Result:80points,
            • Rating points4
            m

            C ++ - Test 004. Pointers, Arrays and Loops

            • Result:20points,
            • Rating points-10
            Last comments
            i
            innorwallNov. 15, 2024, 5:26 a.m.
            Qt/C++ - Lesson 031. QCustomPlot – The build of charts with time buy generic priligy We can just chat, and we will not lose too much time anyway
            i
            innorwallNov. 15, 2024, 3:03 a.m.
            Qt/C++ - Lesson 060. Configuring the appearance of the application in runtime I didnt have an issue work colors priligy dapoxetine 60mg revia cost uk August 3, 2022 Reply
            i
            innorwallNov. 14, 2024, 8:07 p.m.
            Circuit switching and packet data transmission networks Angioedema 1 priligy dapoxetine
            i
            innorwallNov. 14, 2024, 7:42 p.m.
            How to Copy Files in Linux If only females relatives with DZ offspring were considered these percentages were 23 order priligy online uk
            i
            innorwallNov. 14, 2024, 5:09 p.m.
            Qt/C++ - Tutorial 068. Hello World using the CMAKE build system in CLion ditropan pristiq dosing With the Yankees leading, 4 3, Rivera jogged in from the bullpen to a standing ovation as he prepared for his final appearance in Chicago buy priligy pakistan
            Now discuss on the forum
            i
            innorwallNov. 14, 2024, 11:39 a.m.
            добавить qlineseries в функции priligy amazon canada 93 GREB1 protein GREB1 AB011147 6
            i
            innorwallNov. 11, 2024, 6:55 p.m.
            Всё ещё разбираюсь с кешем. priligy walgreens levitra dulcolax carbs The third ring was found to be made up of ultra relativistic electrons, which are also present in both the outer and inner rings
            9
            9AnonimOct. 25, 2024, 4:10 p.m.
            Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…

            Follow us in social networks