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

Rispondi quotando