res.append(net);为什么这句话执行后显示了网格
时间: 2024-02-11 14:09:49 浏览: 126
`res.append(net)` 这句话往 `res` 列表中添加了一个名为 `net` 的网格线对象。
如果这个 `net` 对象是一个自定义的QGraphicsItem对象(如上一个回答中的 `MyGridItem`),并在其 `paint()` 方法中使用 `QPainter` 绘制出了网格线,那么在将 `net` 对象添加到 `res` 列表中后,`res` 列表中就存储了这个网格线对象。
接下来,如果将 `res` 列表中的所有网格线对象添加到 `QGraphicsScene` 中,那么这些网格线对象就会显示在 `QGraphicsScene` 中。具体来说,可以这样实现:
```
QGraphicsScene *scene = new QGraphicsScene(this);
foreach (MyGridItem *gridItem, res) {
scene->addItem(gridItem);
}
ui->graphicsView->setScene(scene);
```
在这里,我们遍历了 `res` 列表中的每一个网格线对象 `gridItem`,并将其添加到 `QGraphicsScene` 中。最后,将 `QGraphicsScene` 设置为 `ui->graphicsView` 的场景,这样所有的网格线对象就会显示在 `ui->graphicsView` 所代表的视图中了。
阅读全文