Привет, у меня есть GridLayout, в котором есть 64 GraphicsViews (я знаю, что это много, но это единственный способ, которым я мог бы это сделать на данный момент). Теперь я просто рисую случайную линию в каждом из этих графических представлений по таймеру. Это работает, но только для 8 видов графики, создания графических представлений
void Simulation::createGraphicsViews(){ for(int i = 0; i ‹ 64; i++){ for(int j = 0; j ‹ 8; j++){
graphicsScene[i] = new QGraphicsScene();
graphicsView[i] = new QGraphicsView(graphicsScene[i]);
simui->gridLayout->addWidget(graphicsView[i], i/8, j);
}
}
}
Случайная линия в каждом графическом представлении
for(int x = 0; x < 64; x++){
x1 = qrand()%(50+1) - 1;
y1 = qrand()%(50+1)-1;
x2 = qrand()%(50+1)-1;
y2 = qrand()%(50+1)-1;
graphicsScene[x]->addLine(x1,y1,x2,y2);
qDebug() << "adding line to" << x << "at" << x1 <<","<<y1<<","<<x2<<","<<y2;
}
показать обновленный графический вид
for(int x = 0; x < 64; x++){
graphicsView[x]->show();
qDebug()<<"showing" << x;
}
Я просматривал его последние 2 часа, пробуя несколько подходов, ни один из которых не решил эту проблему, я предполагаю, что это, вероятно, что-то глупое, но я просто не могу понять это.
Любая помощь очень ценится Спасибо
Кроме того, если я попытаюсь обновить любое из графических представлений, кроме тех, которые работают, они все равно не обновятся.
https://gist.github.com/gazza126/f43d5b0377649782a35d — полный код (который делает все )