【发布时间】:2014-11-29 10:29:14
【问题描述】:
我在运行 qt 项目时遇到错误,我不明白是什么原因
错误:
'class MainWindow' 没有名为 'setSceneRect' 'class 的成员 MainWindow' 没有名为 'setScene' 的成员 `mapToScene' 没有 在这个范围内声明
代码:
主窗口.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));
}
主窗口.h:
private:
Ui::MainWindow *ui;
QGraphicsScene * scene;
【问题讨论】:
-
我不建议你运行这段代码,它会消耗你所有的内存。您在 mainwidow 的构造函数中为 mainwindow 分配内存。您的构造函数调用另一个构造函数,该构造函数调用另一个 abd 另一个。你需要完全重写你的代码。
标签: c++ qt qgraphicsscene scene