Нужно отобразить график. График будет динамическим и будет меняться в процессе деятельности программы, и взаимодействовать с пользователем( на графике должно быть можно рисовать). Выбрал для этого QGraphicsScene. Создал по кнопке такой метод
void MainWindow::paintXY()
{
int n = X.size();
double maxy = Y.at(0);
double miny = Y.at(0);
double maxX = X.at(0);
double minX = X.at(0);
for(int i = 0;i<n;i++){
if(maxy<Y.at(i))maxy = Y.at(i);
if(miny>Y.at(i))miny = Y.at(i);
if(maxX<X.at(i))maxX = X.at(i);
if(minX>X.at(i))minX = X.at(i);
}
double dx = w/(maxX-minX);
double dy = h/(maxy-miny);
for(double i =miny;i<maxy;i+=(maxy-miny)/10){
QGraphicsSimpleTextItem* text = new QGraphicsSimpleTextItem();
text->setY(-dy*i);
text->setText(QString("%1").arg(i));
scene->addItem(text);
}
double di = ((maxX-minX)/10);
for(double i =0;i<maxX;i=i+di){
QGraphicsSimpleTextItem* text = new QGraphicsSimpleTextItem();
text->setX(i*dx);
text->setText(QString("%1").arg(i));
scene->addItem(text);
}
}
Собственно - подписи осей. Программа вылетает, когда захочет, обычно, пири каких-либо модификациях интерфейса - перетаскивание, разворачивание на весь экран... В чём тут проблема? Может нельзя записывать item созданный в методе с локальной ссылкой? Но вроде должно быть нормально, на сколько я понимаю - объект создаётся в куче, а ссылка на него кидается в items сцены, так почему программа вылетает?