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>。没那么重。

10-07 20:10