Scusate non volevo farvi arrabbiare...é solo che nessuno dei miei amici che fa un lavoro nel campo dell'informatica aveva mai nè lavorato nè sentito parlare di Qt: ecco perchè pensavo fosse sconosciuto...

Allora provo a mettere il codice prima di scrivere gli errori che mi vengono fuori.

Main.cpp

codice:
#include <QtGui/QApplication>
#include "esempio.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    
    return a.exec();
}

Esempio.cpp

codice:
#include <QtGui>
#include "esempio.h"
#include "ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    connect (ui->actionExit,SIGNAL(triggered()),this,SLOT(close()));
    imageLabel = new QLabel;
    child = new QLabel(0);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_actionOpen_triggered()
{
    QString fileName = QFileDialog::getOpenFileName(this,
                                    tr("Open File"), QDir::currentPath());
    if (!fileName.isEmpty()) {
        QImage image(fileName);

        child->setPixmap(fileName);
        ui->mdiArea->addSubWindow(child);
        child->show();
        if (image.isNull()) {
            QMessageBox::information(this, tr("Image Viewer"),
                                     tr("Cannot load %1.").arg(fileName));
            return;

}
        imageLabel->setPixmap(QPixmap::fromImage(image));
        scaleFactor = 1.0;
}
}

void MainWindow::on_actionZoom_In_triggered()
{
    scaleImage(1.25);
}

void MainWindow::on_actionZoom_Out_triggered()
{
 scaleImage(0.8);
}

void MainWindow::on_actionNormal_size_triggered()
{
    imageLabel->adjustSize();
    scaleFactor = 1.0;
}

void MainWindow::scaleImage(double factor)
{
    Q_ASSERT(imageLabel->pixmap());
    scaleFactor *= factor;
    imageLabel->resize(scaleFactor * imageLabel->pixmap()->size());

    zoomInAct->setEnabled(scaleFactor < 3.0);
    zoomOutAct->setEnabled(scaleFactor > 0.333);
}

Esempio.h

codice:
#ifndef ESEMPIO_H
#define ESEMPIO_H

#include <QMainWindow>

class QLabel;
class QAction;

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT
    
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    
private slots:
    void on_actionOpen_triggered();

    void on_actionZoom_In_triggered();

    void on_actionZoom_Out_triggered();

    void on_actionNormal_size_triggered();

private:
    Ui::MainWindow *ui;
    QLabel *imageLabel;
    void scaleImage(double factor);

    double scaleFactor;

    QAction *zoomInAct;
    QAction *zoomOutAct;
};

#endif // ESEMPIO_H

In pratica sono riuscito fino ad ora a risolvere parecchi errori, ma non capisco perchè mi dice che non ho dichiarato il "child"

Il child da quello che ho studiato è una istanza di QLabel, quindi in che maniera dovrei specificarla?

A me viene l'interfaccia con i comandi, ma non riesco a far visualizzare nella mdiArea le foto che vorrei proprio per il motivo detto sopra...



PS: una volta fatta questa cosa, secondo voi come potrei passare a far visualizzare 40 immagini con uno standard predefinito? Si passa facile da 1 a 40 immagini?


Grazie in anticipo a chi mi può dare uno spunto