這可能是一個轉儲問題,但我現在真的堅持下去。我試圖在QGraphicsScene中繪製一些方塊,我希望它們從位置x = 0對齊到x座標的正位置。但是,它們根據QGraphicsView的對齊配置進行對齊,並且位置設置僅對第二項和第一項相對於第一項有效!這意味着如果我有一個單一的項目,那麼它的位置設置不起作用。主要是這條線似乎並沒有被工作:Qt - 添加項目到絕對位置的QGraphicsScene
graphicsView->setAlignment(Qt::AlignAbsolute);
這是我的代碼:
QGraphicsScene *scene = new QGraphicsScene();
QGraphicsView *graphicsView;
graphicsView->setScene(scene);
graphicsView->setAlignment(Qt::AlignAbsolute);
for(int i = 0; i < 500; i+= 50)
{
QGraphicsPolygonItem *item = new QGraphicsPolygonItem();
item->setPen(QPen(QColor(qrand()%255,qrand()%255,qrand()%255)));
item->setBrush(QBrush(QColor(255,251,253)));
item->setPolygon(*myPolygon);
graphicsView->scene()->addItem(item);
item->setPos(i , 40);
item->setFlag(QGraphicsItem::ItemIsMovable, true);
item->setFlag(QGraphicsItem::ItemIsSelectable, true);
graphicsView->show();
}
我不知道這個問題可能是什麼,所以我嘗試下面的代碼
const QRectF rect = QRectF(0, 0, ui->graphicsView->width(), ui->graphicsView->height());
ui->graphicsView->setScene(&_scene);
ui->graphicsView->fitInView(rect, Qt::KeepAspectRatio);
ui->graphicsView->setSceneRect(rect);
對於前四行,以下輸出不會產生彼此接近的大小:
qDebug() << "scene =>" << _scene.width() << _scene.height();
qDebug() << "graphicview =>" << ui->graphicsView->width() << ui->graphicsView->height();
我非常感謝您的幫助。