c++ - 修剪后,留下一个矩形
问题描述
我想裁剪上传到qgraphicsview
. 为此,我按住鼠标按钮qgraphicsview
并选择要保留的片段。这将绘制一个矩形,显示图像将保留多少。
加载后我得到以下信息:
修剪后:
你能告诉我如何在裁剪后删除矩形吗?
编码:
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->dstGraphicsView->setScene( &scSrc ) ;
ui->dstGraphicsView->setScene( &scDst ) ;
connect(ui->srcGraphicsView->verticalScrollBar(), SIGNAL(sliderMoved(int)), ui->dstGraphicsView->verticalScrollBar(), SLOT(setValue(int)));
connect(ui->dstGraphicsView->verticalScrollBar(), SIGNAL(sliderMoved(int)), ui->srcGraphicsView->verticalScrollBar(),SLOT(setValue(int)));
connect(ui->srcGraphicsView->horizontalScrollBar(), SIGNAL(sliderMoved(int)), ui->dstGraphicsView->horizontalScrollBar(), SLOT(setValue(int)));
connect(ui->dstGraphicsView->horizontalScrollBar(), SIGNAL(sliderMoved(int)), ui->srcGraphicsView->horizontalScrollBar(), SLOT(setValue(int)));
}
void MainWindow::on_open_im_clicked()
{
QString fp = QFileDialog::getOpenFileName() ;
nPixSrc = new nGPixmapItem( QPixmap(fp) ) ;
nPixDst = new nGPixmapItem( QPixmap(fp) ) ;
scSrc.addItem( nPixSrc ) ;
scDst.addItem( nPixDst ) ;
mScene1 = new PaintScene(this);
ui->srcGraphicsView->setScene(mScene1);
ui->dstGraphicsView->setScene(mScene1);
connect(mScene1, &PaintScene::mouseReleased, this, &MainWindow::obrezka);
mScene1->addItem(nPixSrc);
}
void MainWindow::obrezka()
{
QRect rect(mScene1->mx,mScene1->my, mScene1->mwidth, mScene1->mheigh);
QPixmap cropped = nPixSrc->pixmap().copy(rect);
nPixSrc->setPixmap(cropped);
nPixDst->setPixmap(cropped);
}
解决方案
推荐阅读
- excel - 为什么这段代码会导致无限循环
- android - getSupportActionBar 上的 NullPointerException
- ios - 文件提供程序扩展在 iOS 13 上不起作用
- javascript - 为动态计算/瞬态状态实现 getter
- kubernetes - 节点池集群未自动缩放
- batch-file - 有没有办法回显所有驱动器/分区的列表,例如 C:\ D:\ E:\ 等,并提示用户选择其中一个来执行某些功能?
- angular - 在 Angular 中获取 URL 参数
- magnolia - 查找节点是否为子 magnolia CMS
- php - 在刀片 laravel 中使用连接
- python - 其他语句导致基本字数计数程序中的无限循环?