Я пытался использовать каркас графического представления для рисования узлов, где я нажимаю. Тем не менее, я не могу получить правильную позицию.
Такое поведение происходит: я нажимаю на желтую точку, и там появляется узел
Итак, вот код для mainwindow.cpp:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow) {
scene = new GraphScene(this);
ui->setupUi(this);
ui->graphicsView->setScene(scene);
ui->graphicsView->setSceneRect(ui->graphicsView->rect());
ui->graphicsView->setFrameStyle(0);
ui->graphicsView->show();
}
пользовательская сцена mousePressEvent:
void GraphScene::mousePressEvent(QGraphicsSceneMouseEvent *event){
if (!this->itemAt(event->scenePos(), QTransform())){
this->addItem(new NodeItem(event->scenePos()));
this->update();
}
}
И узел элемента:
NodeItem::NodeItem(QPointF position) {
this->setPos(position) ;
}
void NodeItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget){
painter->drawEllipse(pos(), 30.0, 30.0);
}
QRectF NodeItem::boundingRect() const{
return QRectF(pos(), QSizeF(30,30));
}
Я старался изо всех сил, чтобы исправить это, но я застрял на некоторое время и не могу это исправить. Я буду признателен за любую помощь.