Privacy policyContactsAbout siteOpinionsGitHubDonate
© EVILEG 2015-2018
Recommend hosting
TIMEWEB
Dec. 30, 2018, 1:22 p.m.

Динамическое создание обьекта и добавление в 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) но не уверен может ли это мне помочь.

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

10% refund of hotel reservation amount on Booking
10% refund of hotel reservation amount on Booking
We offer a link with a 10% return on the amount of the order when booking a hotel through Booking
2

;-)

for (var i = 0; i < timerContainer.size; ++i)
{
    timerContainer.getTimer(i).visible = (i === idx);   
}
0

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

0

Comments

Only authorized users can post comments.
Please, Log in or Sign up
D
March 19, 2019, 9:57 a.m.
Damir

C++ - Test 001. The first program and data types

  • Result:73points,
  • Rating points1
ПМ
March 18, 2019, 3:12 p.m.
Пётр Махнёв

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

  • Result:50points,
  • Rating points-4
ЯГ
March 18, 2019, 7:59 a.m.
Ян Греку

C++ - Тест 003. Условия и циклы

  • Result:21points,
  • Rating points-10
Last comments
March 16, 2019, 1:55 p.m.
Дмитрий

Спасибо за статью. Давно итересует следующий вопрос: с помощью переменных QMAKE_TARGET_COMPANYQMAKE_TARGET_PRODUCTQMAKE_TARGET_DESCRIPTIONможно задать свойства компилируемой программы, о...
JS
March 12, 2019, 10:19 a.m.
Jean Stefanovich

Большое спасибо за разъяснения!
March 12, 2019, 10:04 a.m.
Евгений Легоцкой

Hello, In fact, this functionality or is not implemented, or is not documented. I'm not sure. But I think, that it should be implemented in Text QML Type. Because of we can write text in...
March 12, 2019, 9:51 a.m.
Евгений Легоцкой

Да вы правы. На самом деле проще через QSqlQueryModel, сколько не пытался использовать эти дженерики типо QSqlTableModel и QSqlRelationalTableModel, то всегда упирался в какие-то их ограничени...
JS
March 12, 2019, 9:47 a.m.
Jean Stefanovich

Единицы измерения лежат там же где и названия продуктов. Просто в таблице ингредиенты нет ещё одного столбца, на который можно было бы установить setRelation. Я в итоге в базе создал ещё один ...
Now discuss on the forum
March 17, 2019, 10:47 p.m.
Евгений Легоцкой

Добрый день. Вот, нашлось у меня немного времени. Делается это через шаблон проектирования наблюдатель. GraphKS_mfvSlup.zip
ЧГ
March 15, 2019, 9:52 p.m.
Чарльз Грин

спасибо, попробую, отпишусь
m
March 15, 2019, 7:41 p.m.
mihamuz

Сори догадался)
n
March 12, 2019, 4:57 p.m.
newbie.works.with.QT

Большооооое спасибо!!!!!Не передать как я вам благодарен, спасибо что всегда отзываетесь.Теперь я смогу продолжить работу в QT!!! (пробую писать бота (Я как вы могли догадаться немного не пр...
March 12, 2019, 1:20 p.m.
BlinCT

Ну так если у вас есть готовая программа так ей и воспользуйтесь. Вы же написали ее вот и пользуйтесь.
Join us in social networks

For registered users on the site there is a minimum amount of advertising