LINUX.ORG.RU
Ответ на: комментарий от Alex_Golubev

Значит разверни это в устаревший вид циклов из старых стандартов C++ в соответствии с твоим компилятором и документации на Qt 4.

Там вроде был какой-то foreach на костылях через макросы.

EXL ★★★★★
()
Ответ на: комментарий от Alex_Golubev

Попробуй так:

void Widget::timerEvent(QTimerEvent *event)
{
    QList<QGraphicsItem *> items = graphicsScene->items();
    for (int i = 0; i < items.size(); ++i) {
        dynamic_cast<Sensor *>(items.at(i))->setOk(qrand() % 2);
    }
    graphicsScene->update();
}
EXL ★★★★★
()
Ответ на: комментарий от EXL

Сегодня тестировал и наткнулся на такой момент. Когда случайно коснешься квадратика, то он перемещается вслед за движением пальца. Как можно зафиксировать все квадратики?

Alex_Golubev
() автор топика
Ответ на: комментарий от EXL

Заметил вот что еще. При выполнение кода отрисовка цветов квадратиков происходит не с номера 1 а с номера 120. То есть с низу вверх. [code] QList<QGraphicsItem > items = graphicsScene->items(); for (int i = 0; i < items.size(); i++) { dynamic_cast<StateBalanser>(items.at(i))->setColorState(massifDataBalansir[i].esrState, massifDataBalansir[i].modeWork); } graphicsScene->update(); [/code]

Alex_Golubev
() автор топика
Ответ на: комментарий от Alex_Golubev

Это наверное сделано для оптимизации сцен где этих элементов тысячи или миллионы. То есть последний добавленный элемент будет в этом цикле первым.

Попробуй просто поправить порядок сортировки graphicsScene->items(Qt::AscendingOrder) в получении массива.

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
13 марта 2020 г.
Ответ на: комментарий от EXL

Столкнулся с проблемой. У меня пк слабый и если делать обновление всей сцены

 QList<QGraphicsItem *> items = graphicsScene->items(Qt::AscendingOrder);

    for (int i = 0; i < items.size(); i++) {

        dynamic_cast<StateBalanser*>(items.at(i))->setColorState(massifDataBalansir[i].State, massifDataBalansir[i].modeWork);

    }

    graphicsScene->update();

    items.clear();

То программа тормозит. Есть какое решение для оптимизации ?

Alex_Golubev
() автор топика
Ответ на: комментарий от Alex_Golubev

Используй QML.

зы: да и перестаньте уже кормить тролля. пусть сам разбирается. я в шоке как его приняли на работу вобще? если это импортозамещение - то я «спокоен за страну». или это не россия?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.