我正在Qt上构建一个简单的图像编辑器。我已经在QGraphicsView上打开了我的图像,我希望能够裁剪它。经过大量的搜索,我想出了这个代码,但它不起作用。
void MainWindow::on_openButton_pressed()
{
QString imagePath=QFileDialog::getOpenFileName(this,tr("Open File"),"",tr("JPEG (*.jpg *.jpeg);;PNG (*.png)"));
imageObject=new QImage();
imageObject->load(imagePath);
image=QPixmap::fromImage(*imageObject);
scene = new QGraphicsScene(this);
scene->addPixmap(image);
scene->setSceneRect(image.rect());
ui->graphicsView->setScene(scene);
ui->graphicsView->setDragMode(QGraphicsView::RubberBandDrag);
showEvent();
}
void MainWindow::mousePressEvent(QMouseEvent *event){
start=event->pos();
}
void MainWindow::mouseReleaseEvent(QMouseEvent *event)
{
end=event->pos();
}
void MainWindow::on_cropButton_clicked()
{
start=ui->graphicsView->mapFromScene(start);
end=ui->graphicsView->mapFromScene(end);
QRect rect(start, end);
cropped.size()=rect.size();
cropped=image.copy(rect);
ui->graphicsView->scene()->addPixmap(cropped);
ui->graphicsView->scene()->setSceneRect(cropped.rect());
showEvent();
}
任何人都可以找到错误的位置或提出更好的方法吗? 非常感谢你。