BlinCT
BlinCT30 декабря 2018 г. 8:22

Динамическое создание обьекта и добавление в StackView QML

qml, c++

Всем привет.
Столкнулся с такой проблемой, на стороне С++ я создаю динамически обьект, его получаю на стороне QML и нужно его добавить в StackView.
И как это сделать не могу придумать. Ниже кидаю крестовую часть и QML

TimerContainer::TimerContainer(QObject *parent)
        : QObject(parent)
{
    vec_ = new vector<CircleTimer*>();
    createTimer();
}

CircleTimer *TimerContainer::getTimer(int index)
{
    return vec_->at(index);
}

void TimerContainer::delTimer(int index)
{
    vec_->erase(vec_->begin() + index);
    emit sizeChanged(vec_->size());
}

void TimerContainer::createTimer()
{
    auto timer = new CircleTimer();
    vec_->push_back(timer);
    emit sizeChanged(vec_->size());
    emit addNewTimer(timer);
}

void TimerContainer::createTimers(int number)
{
    if (number != 0)
    {
        while (number != 0)
        {
            createTimer();
            --number;
        }
    }
}

int TimerContainer::size()
{
    return vec_->size();
}

QML

StackView
{
    id: timers

    property var currentTimer: QtObject
    property int currentIndex: -1
    property int targetId: 0

    function selectTimer(idx)
    {
        for (var i = 0; i < timerContainer.size; ++i)
        {
            //timerContainer.getTimer(idx).visible = (i === idx);
            //console.log("idx: " + i + " - " + timerContainer.getTimer(idx).visible)
        }
        currentTimer = timerContainer.getTimer(idx);
        currentIndex = idx;
    }

    //function addTimer(timer) {
    //    timer.parent = circletimercontent1;
    //    timer.anchors.fill = circletimercontent1;
    //}

    Component.onCompleted: {
        for (var i = 0; i < timerContainer.size; ++i)
        {
            timers.push(timerContainer.getTimer(i));
        }

        timers.selectTimer(0);
        timerContainer.addNewTimer.connect(timers.addTimer);

    }

    Connections
    {
        target: currentTimer
    }
}

Наткнулся где то на форумах на
var newComponent = Qt.createComponent(arg)
var newObj = newComponent.createObject(arg)
но не уверен может ли это мне помочь.

Буду признателен если тот кто с чем то подобным сталкивался поможет разобратся в этом.

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

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

2
Evgenii Legotckoi
  • 30 декабря 2018 г. 14:58
  • Ответ был помечен как решение.

;-)

for (var i = 0; i < timerContainer.size; ++i)
{
    timerContainer.getTimer(i).visible = (i === idx);   
}
    BlinCT
    • 30 декабря 2018 г. 15:49

    Да, ошибочка на внимательность)

      Комментарии

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

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

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

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

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

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

      • Результат:20баллов,
      • Очки рейтинга-10
      Последние комментарии
      i
      innorwall14 ноября 2024 г. 21:26
      Qt/C++ - Урок 031. QCustomPlot - строим график по времени buy generic priligy We can just chat, and we will not lose too much time anyway
      i
      innorwall14 ноября 2024 г. 19:03
      Qt/C++ - Урок 060. Настройка внешнего вида приложения в рантайме I didnt have an issue work colors priligy dapoxetine 60mg revia cost uk August 3, 2022 Reply
      i
      innorwall14 ноября 2024 г. 11:42
      Как Копировать Файлы в Linux If only females relatives with DZ offspring were considered these percentages were 23 order priligy online uk
      i
      innorwall14 ноября 2024 г. 9:09
      Qt/C++ - Урок 068. Hello World с использованием системы сборки CMAKE в 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
      Сейчас обсуждают на форуме
      i
      innorwall14 ноября 2024 г. 3:39
      добавить qlineseries в функции priligy amazon canada 93 GREB1 protein GREB1 AB011147 6
      i
      innorwall11 ноября 2024 г. 10: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 г. 9:10
      Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
      ИМ
      Игорь Максимов3 октября 2024 г. 4:05
      Реализация навигации по разделам Спасибо Евгений!

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