QList<QPoint*> DrawingWidget::getCloseLinesById(int m_x, int m_y) {
QList<QPoint*> lines;
// HERE I APPEND ABOUT 5 ITEMS
return lines;
}
附加的作品在这里。它只给我一些警告,但仍可以编译。警告是。
taking address of temporary
但是这个
void DrawingWidget::mouseMoveEvent(QMouseEvent *event) {
if(m_mainWindow->getSelectedTool() == MainWindow::moveVertexTool) {
m_x = event->x();
m_y = event->y();
QList<QPoint*> points = getCloseLinesById(event->x(), event->y());
for(int i = 0; i < points.size(); i++) {
*points[i]->setX(event->x()); //error on this line
*points[i]->setY(event->y()); // error on this line
}
update();
}
}
}
导致以下错误:
void value not ignored as it ought to be
void value not ignored as it ought to be
因此,对于两行它给出相同的错误。
当我移动鼠标时,此代码基本上应该可以移动行。
我该如何解决这个问题?
最佳答案
您没有说明您的问题到底是什么。但是您在错误的行中使用了额外的*
:
points[i]->setX(event->x());
另外,您也没有显示如何添加到列表中。我的猜测是警告是由于您分配了一些计算的QPoints的地址。即使将其编译,它也会崩溃。只需使用
QList<QPoint>
。没那么重。