यहां मेरा कोड है:क्यूटी ग्राफिक्स देखें, छवि दिखाओ! विजेट
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();
}
}
मैं फ़ाइल से छवि प्रदर्शित करना चाहता हूं, कोड ठीक काम करता है लेकिन छवि बहुत तेज़ी से निराश होती है।
मैं छवि स्क्रीन को कैसे रोक सकता हूं?
और मैं "ग्राफिक्स व्यू" विजेट में छवि कैसे लोड कर सकता हूं?
मेरा कोड:
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();
}
}
यह काम नहीं करता है।
इसे कैसे ठीक करें?
और मेमोरी लीक से कैसे बचें? : =) मुझे मेमोरी सही ¿जारी करना है? :) –
हां आपको खुद को हटाने के साथ साफ करने की आवश्यकता होगी। मैं सुझाव दूंगा कि आप क्लास पॉइंटर वैरिएबल के रूप में अपने क्यूग्राफिक्ससेन (और क्यूग्राफिक्स पिक्समैप इटिम अगर इसे एडिटेम के दौरान कॉपी नहीं करते हैं) घोषित करें। और फिर मैं सुझाव दूंगा कि जब आप वैरिएबल घोषित करते हैं तो आप कुछ प्रकार के स्मार्ट पॉइंटर का उपयोग करते हैं। QSharedPointer: <कक्षा शीर्षलेख में> QSharedPointer ptr_scene; <स्रोत फ़ाइल में> यह-> ptr_scene = QSharedPointer (नया QGraphicsScene()) तब मेनविंडो बंद होने पर स्मृति प्रबंधित होती है। –
thomas