
#include
#include
#include
#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<
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);
}
}
你好!我不是要动态显示图片,我是希望能够以open的方式来取得图片,我的程序里面有的,最后还有个save菜单,再帮我看看,谢谢拉!
在缺或掘QuickTime没有卸载的时候会把系统里图片显示的部分参数给改掉,所以装团哗完以后伏核卸载了QuickTime就会变得不能显示了,而png格式的图片在IE核心浏览器的网页上会变得不能显示(不是IE核心的浏览器,比如火狐就可以看到)。我当时就把QuickTime重装了一遍,然后把里面的设置改掉,在里面的支持的图片里把png后缀后面的那个勾去掉,然后再卸载掉(可能不用卸载也说不定),png图片就会显示了。不过每个人情况都有可能不一样,方法也许是因人而异的。
你这里得到的filename是文件老指名吧?它并不包含文件路径,而你用咐念QImage打开的时候,需要提供完整的文件路径,你试着把路径也读取出来,这样QImage才侍简配能正确打开图片。
用定时器切换静态图片。时间间隔首尘短一点的话,就成动态的图片了。
希望能帮到你。
百度了一下,还可以这样:
#include
#include
//#include
#include
#include
int main (int argc, char *argv[])
{
QApplication app(argc,argv);
QLabel *label=new QLabel ("", 0); //初始化qlabel
QMovie pm("logo.gif"); //设定者清禅要显示的图片
label->setMovie(pm); //将图片加载到label上
label->setGeometry( 0, 0, 240, 320 ); //屏幕大小,初始位置
app.setMainWidget(label); //将图片设为放正备置在中间
// QTimer::singleShot( 3*1000, label, SLOT(close()));//显示时间
label->show ();
return app.exec();
}
你的串号我已经记下,采纳后我会帮你制作
我觉得是你的路径不对,仔细检查把