• 5536阅读
  • 3回复

关于图片显示的问题,急??? [复制链接]

上一主题 下一主题
离线ym6956
 
只看楼主 倒序阅读 楼主  发表于: 2010-12-06
下面是我的代码,为什么我每次编译通过之后生成的一个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);
}
离线dbzhang800

只看该作者 1楼 发表于: 2010-12-06
不妨写个10几行的小程序来测试图片能不能打开。遇到问题的话,贴出来大家也有心情看。
离线ym6956
只看该作者 2楼 发表于: 2010-12-06
我个人认为应该是显示这一块出了问题,因为能够读取,但最终不能显示。
离线浪漫天使
只看该作者 3楼 发表于: 2010-12-07
方便打包一下你的整个工程么?
快速回复
限100 字节
 
上一个 下一个