これにより、QGraphicsSceneとQGraphicsViewの新しいタブで各画像を開きました
void MainWindow::on_actionOpen_triggered()
{
QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), QDir::currentPath());
if (!fileName.isEmpty()) {
QImage image(fileName);
if (image.isNull()) {
QMessageBox::information(this, tr("Master Measure"),
tr("Cannot load %1.").arg(fileName));
return;
}
scene = new QGraphicsScene;
view = new QGraphicsView;
view->setScene(scene);
tabWidget->addTab(view,"someTab");
scene->addPixmap(QPixmap::fromImage(image));
scene->setBackgroundBrush(QBrush(Qt::lightGray, Qt::SolidPattern));
QFileInfo fileInfo = fileName;
tabWidget->setTabText(ui->tabWidget->count()-1, fileInfo.baseName());
tabWidget->setCurrentIndex(ui->tabWidget->count()-1);
}
}
クリックして各画像に何かを描きたい。
だから私はクリックプレスイベントでこれをやった
void MainWindow::mousePressEvent(QMouseEvent *event)
{
QPen pen(Qt::black);
QBrush brush(Qt::red);
pen.setWidth(6);
scene->addEllipse(0,0,1000,500,pen,brush);
}
最後に開いた画像(タブ)に楕円を描くだけです。
この問題を解決する方法がわかりません。
どんなアイデアでも感謝します。ありがとうございました。