ВЖ
Владимир Житковский18 января 2020 г. 5:35

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")
        }
    }   
}
Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Вам это нравится? Поделитесь в социальных сетях!

5
t
  • 18 января 2020 г. 6:59

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

    ВЖ
    • 18 января 2020 г. 7:25

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

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

      Evgenii Legotckoi
      • 20 января 2020 г. 13:59

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

        ВЖ
        • 20 января 2020 г. 14:37

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

          Serj Demchenko
          • 22 января 2020 г. 6:06

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

            Комментарии

            Только авторизованные пользователи могут публиковать комментарии.
            Пожалуйста, авторизуйтесь или зарегистрируйтесь
            AD

            C++ - Тест 004. Указатели, Массивы и Циклы

            • Результат:50баллов,
            • Очки рейтинга-4
            m
            • molni99
            • 26 октября 2024 г. 7:37

            C++ - Тест 004. Указатели, Массивы и Циклы

            • Результат:80баллов,
            • Очки рейтинга4
            m
            • molni99
            • 26 октября 2024 г. 7:29

            C++ - Тест 004. Указатели, Массивы и Циклы

            • Результат:20баллов,
            • Очки рейтинга-10
            Последние комментарии
            i
            innorwall12 ноября 2024 г. 4:12
            Django - Урок 055. Как написать функционал auto populate field Freckles because of several brand names retin a, atralin buy generic priligy
            i
            innorwall12 ноября 2024 г. 0:23
            QML - Урок 035. Использование перечислений в QML без C++ priligy cvs 24 Together with antibiotics such as amphotericin B 10, griseofulvin 11 and streptomycin 12, chloramphenicol 9 is in the World Health Organisation s List of Essential Medici…
            i
            innorwall11 ноября 2024 г. 21:50
            Qt/C++ - Урок 052. Кастомизация Qt Аудио плеера в стиле AIMP It decreases stress, supports hormone balance, and regulates and increases blood flow to the reproductive organs buy priligy online safe Promising data were reported in a PDX model re…
            i
            innorwall11 ноября 2024 г. 20:19
            Алгоритм сортировки кучей The role of raloxifene in preventing breast cancer priligy precio
            i
            innorwall11 ноября 2024 г. 19:55
            PyQt5 - Урок 006. Работа с QTableWidget buy priligy 60 mg 53 have been reported by Javanovic Santa et al
            Сейчас обсуждают на форуме
            i
            innorwall12 ноября 2024 г. 2:56
            добавить qlineseries в функции buy priligy senior brother Chu He, whom he had known for many years
            i
            innorwall11 ноября 2024 г. 16:55
            Всё ещё разбираюсь с кешем. 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
            9Anonim25 октября 2024 г. 15:10
            Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
            ИМ
            Игорь Максимов3 октября 2024 г. 10:05
            Реализация навигации по разделам Спасибо Евгений!

            Следите за нами в социальных сетях