1 / 1 / 0
Регистрация: 01.11.2010
Сообщений: 216
1

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

29.12.2018, 22:45. Показов 2331. Ответов 1
Метки qml (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет.
Столкнулся с такой проблемой, есть крестовая часть, в ней есть вектор типа нужного мне обьекта.
Есть метод который создает и добавляет в вектор обьекты.
На стороне QML я сообщаю что создаю обьект и со стороны крестов в QML прилетает указатель на этот обьект.
А вот теперь вопрос, как в стеквью добавлять эти обьекты и переключатся по ним? Уже не первый день бьюсь над этим(
Ниже кидаю код, надеюсь с него будет понятно.

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import QtQuick 2.11
import CircleTimer 1.0
import QtQuick.Controls 2.4
 
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);
//        }
        currentTimer = timerContainer.getTimer(idx);
        currentIndex = idx;
    }
 
    Component.onCompleted: {
        for (var i = 0; i < timerContainer.size; ++i)
        {
            timers.push(timerContainer.getTimer(i));  //мне кажется я тут бред написал
        }
 
        timers.selectTimer(0);
        timerContainer.addNewTimer.connect(timers.addTimer); // addNewTimer является сигналом который принимает данный обьект
 
    }
 
    Connections
    {
        target: currentTimer
 
        onTimeChanged:
        {
            texttimer.text = Qt.formatTime(time, "hh:mm:ss")
        }
    }
}
 
Button
{
    onClicked: {
        circletimercontent1.push(++circletimercontent1.currentIndex)  //кнопка по задумке которая дает переключение на следующий элемент стека
    }
}
А тут крестовая часть кода и важные методы

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
CircleTimer *TimerContainer::getTimer(int index)
{
    return vec_->at(index);
}
 
void TimerContainer::delTimer(int index)
{
    // todo: удалять будем от vec_->begin() + index до vec_->size()
    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();
}
Заранее благодарю.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.12.2018, 22:45
Ответы с готовыми решениями:

Ображение к свойству обьекта в StackView QML
Всем привет. Есть в однмо обьекте свойство, и к этмоу свойству надо обратится извне. Но проблема...

Дерганая анимация в StackView QML
Всем привет. У меня странная анимация при открытии в StackView когда я хочу открыть следующий...

Пушить в StackView по нажатию кнопки QML
Привет! Не могу сообразить как организовать запушивание в StackView каждый раз когда я нажимаю...

QML Raw + динамическое добавление и удаление итемов
Каким образом можно динамически добавлять/удалять элементы в Row?

1
20 / 16 / 5
Регистрация: 07.01.2019
Сообщений: 90
07.01.2019, 13:29 2
Не думали написать модель для вьюшки? Думаю хорошее решение этой проблемы
0
07.01.2019, 13:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.01.2019, 13:29
Помогаю со студенческими работами здесь

QML динамическое создание компонентов
Добрый день. Подскажите, как лучше реализовать динамическое создание следующей формы. Проблема...

QML. Динамическое создание элементов
Доброго времени суток форумчане. :handshake: В прикрепленной картинке отображается схема...

QML. Динамическое создание объектов
Доброго времени суток, форумчане! Только начинаю разбираться с QML и возник следующий вопрос:...

Динамическое создание и добавление классов
Помогите пожалуйста, не понимаю почему не работает вот это. $(document).ready(function(){ ...

Динамическое создание кнопок и добавление функционала
Здравствуйте. Предыстория: пишу дипломпо автоматизации небольших заведений, кафе и т.п(терминал...

Динамическое создание и добавление виджетов в QStackableWidget
сабж. Попробовал сделать так: QStackedWidget *tabsWidget = new QStackedWidget(); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru