smScene = new QGraphicsScene(this); smView = ui->graphicsView_2; smView->setScene(smScene);
时间: 2024-04-11 14:32:43 浏览: 16
这段代码创建了一个新的QGraphicsScene对象,将其指针分配给名为"smScene"的变量。然后,将名为"graphicsView_2"的QGraphicsView对象的指针分配给名为"smView"的变量。接下来,通过调用setScene()方法,将创建的smScene设置为smView的场景。这样做可以将smScene中的图形项显示在smView中,实现图形的显示和交互。
相关问题
ui->graphicsView_type_pie->setChart(chartView);这里报错了
如果在这一行代码中报错,可能是因为 `ui->graphicsView_type_pie` 不是一个 QChartView 对象,而是一个 QGraphicsView 对象。
请确保在 UI 文件中将 `graphicsView_type_pie` 设置为一个 QChartView 对象,或者在代码中将其转换为 QChartView 对象之后再调用 `setChart` 方法。示例代码如下:
```cpp
QGraphicsView* graphicsView = ui->graphicsView_type_pie;
QChartView* chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);
chartView->setFixedSize(400, 400);
QGraphicsProxyWidget* proxyWidget = new QGraphicsProxyWidget();
proxyWidget->setWidget(chartView);
graphicsView->setScene(new QGraphicsScene());
graphicsView->scene()->addItem(proxyWidget);
```
这样,我们将创建一个 QGraphicsProxyWidget,并将 QChartView 放入其中。然后,我们将这个 QGraphicsProxyWidget 添加到 QGraphicsScene 中,并将 QGraphicsScene 设置为 QGraphicsView 的场景。
这样做可以确保我们可以在 QGraphicsView 中显示 QChartView。请根据你的实际情况进行调整,并确保 `ui->graphicsView_type_pie` 是一个 QGraphicsView 控件。
view = new QGraphicsView(ui->graphicsView); scene = new QGraphicsScene(ui->graphicsView);左上角有个缩略图怎么办
你可以通过设置 QGraphicsView 的属性,禁用缩略图的显示。具体来说,你可以将 QGraphicsView 的属性 `OptimizationFlag` 设置为 `DontAdjustForAntialiasing`,以避免出现缩略图。
代码如下:
```
view = new QGraphicsView(ui->graphicsView);
view->setOptimizationFlag(QGraphicsView::DontAdjustForAntialiasing);
scene = new QGraphicsScene(ui->graphicsView);
```
另外,如果你想完全禁用缩略图,你可以将 QGraphicsView 的属性 `ViewportUpdateMode` 设置为 `FullViewportUpdate`,这样就不会再出现缩略图了。
代码如下:
```
view = new QGraphicsView(ui->graphicsView);
view->setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
scene = new QGraphicsScene(ui->graphicsView);
```