Я получаю сообщение об ошибке, когда я бегу Qt проект, и я не могу понять, что является причинойErorr при использовании функции QGraphicsScene в Qt
ошибки:
'class MainWindow' has no member named 'setSceneRect' 'class MainWindow' has no member named 'setScene' `mapToScene' was not declared in this scope
код:
mainwindow.cpp:
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
QGridLayout * gridLayout = new QGridLayout(ui->centralWidget);
gridLayout->addWidget(new MainWindow());
scene = new QGraphicsScene();
this->setSceneRect(50, 50, 350, 350);
this->setScene(scene);
}
void MainWindow::mousePressEvent(QMouseEvent * e)
{
double rad = 1;
QPointF pt = mapToScene(e->pos());
scene->addEllipse(pt.x()-rad, pt.y()-rad, rad*2.0, rad*2.0,
QPen(), QBrush(Qt::SolidPattern));
}
mainwindow.h:
private:
Ui::MainWindow *ui;
QGraphicsScene * scene;
Я не предлагаю вам запускать этот код, он будет потреблять всю вашу память. Вы выделяете память для mainwindow внутри конструктора mainwidow. Вы конструктор вызывает другой конструктор, который вызывает другой abd другой. Вам нужно полностью переписать свой код. – Chernobyl