這裏是我的代碼:Qt圖形視圖,顯示圖像! ,窗口小部件
void MainWindow::on_actionOpen_Image_triggered()
{
QString fileName = QFileDialog::getOpenFileName(this,"Open Image File",QDir::currentPath());
if(!fileName.isEmpty())
{
QImage image(fileName);
if(image.isNull())
{
QMessageBox::information(this,"Image Viewer","Error Displaying image");
return;
}
QGraphicsScene scene;
QGraphicsView view(&scene);
QGraphicsPixmapItem item(QPixmap::fromImage(image));
scene.addItem(&item);
view.show();
}
}
我想從文件顯示的圖像,代碼工作正常,但圖像disappiars非常快。
如何暫停圖像屏幕?
如何在「graphicsView」小部件中加載圖像?
我的代碼:
void MainWindow::on_actionOpen_Image_triggered()
{
QString fileName = QFileDialog::getOpenFileName(this,"Open Image File",QDir::currentPath());
if(!fileName.isEmpty())
{
QImage image(fileName);
if(image.isNull())
{
QMessageBox::information(this,"Image Viewer","Error Displaying image");
return;
}
QGraphicsScene scene;
QGraphicsPixmapItem item(QPixmap::fromImage(image));
scene.addItem(&item);
ui->graphicsView->setScene(&scene);
ui->graphicsView->show();
}
}
它不工作。
如何解決這個問題?
而如何避免內存泄漏? :=)我必須釋放內存權? :) –
是的,你需要清理自己與刪除。我建議你聲明你的QGraphicsScene(和QGraphicsPixmapItem,如果它不在additem期間被複制)作爲類指針變量。然後我會建議你在聲明變量時使用某種智能指針,例如QSharedPointer: QSharedPointer ptr_scene; this-> ptr_scene = QSharedPointer (new QGraphicsScene()) 然後當MainWindow關閉時管理內存。 –
thomas