下面是我的代码,为什么我每次编译通过之后生成的一个exe文件打开图片都是失败的?哪位能帮小弟看下是哪出了问题?
#include <QtGui>
#include <QImageReader>
#include <QScrollBar>
#include "mainwindow.h"
MainWindow::MainWindow()
{
ui.setupUi(this);
imageLabel = new QLabel;
imageLabel->setBackgroundRole(QPalette::Base);
imageLabel->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);
imageLabel->setScaledContents(true);
scrollArea = new QScrollArea;
scrollArea->setBackgroundRole(QPalette::Dark);
scrollArea->setWidget(imageLabel);
setCentralWidget(scrollArea);
foreach (QByteArray ba, QImageReader::supportedImageFormats())
{
QString ext = QString("*.")+QString(ba);
supportFormat<<ext;
}
resize(780,580);
currentFile = displayFiles.constBegin();
}
MainWindow::~MainWindow()
{
}
void adjustScrollBar(QScrollBar *scrollBar, double factor)
{
scrollBar->setValue(int(factor * scrollBar->value()
+ ((factor - 1) * scrollBar->pageStep()/2)));
}
void MainWindow::scaleImage(double factor)
{
Q_ASSERT(imageLabel->pixmap());
scaleFactor *= factor;
imageLabel->resize(scaleFactor * imageLabel->pixmap()->size());
adjustScrollBar(scrollArea->horizontalScrollBar(), factor);
adjustScrollBar(scrollArea->verticalScrollBar(), factor);
}
void MainWindow::on_actionOpen_triggered()
{
QString fileName = QFileDialog::getOpenFileName(this,
tr("Open File"), QDir::currentPath(),
"Image Files (*.png *.jpg *.bmp)");
if (!fileName.isEmpty())
{
QImage image(fileName);
if (image.isNull())
{
QMessageBox::information(this, tr("Image loading..."),
tr("The image file could not be loaded.").arg(fileName));
return;
}
imageLabel->setPixmap(QPixmap::fromImage(image));
scaleImage(1.0);
}
}
bool MainWindow::save()
{
QString fileName = QFileDialog::getSaveFileName(this,
tr("Save "), ".",
tr(" files (*.jpg)"));
if (fileName.isEmpty())
{ return false;}
return saveFile(fileName);
}
void MainWindow::on_actionSave_triggered()
{
save();
}
bool MainWindow::saveFile(const QString &fileName)
{
setCurrentFile(fileName);
statusBar()->showMessage(tr("File saved"), 2000);
return true;
}
void MainWindow::setCurrentFile(const QString &fileName)
{
curFile = fileName;
setWindowModified(false);
QString shownName = tr("Untitled");
if (!curFile.isEmpty()) {
shownName = strippedName(curFile);
}
setWindowTitle(tr("%1[*] - %2").arg(shownName));
}
QString MainWindow::strippedName(const QString &fullFileName)
{
return QFileInfo(fullFileName).fileName();
}
void MainWindow::on_actionZoomIn_triggered()
{
scaleImage(1.25);
}
void MainWindow::on_actionZoomOut_triggered()
{
scaleImage(0.8);
}