Qt版电子相册

闲暇之余写一个电子相册玩玩。其中有些问题请大家帮忙看看。多谢。

做一个电子相册项目的过程
1、动手做这个项目,想法如下:
由用户选择图片,选择对应的歌曲,每张图片可以由用户输入对照片的备注。最后组合成MP4或者EXE文件来进行播放。
2、为了实现这些功能。我开始了编码之旅。
首先,打开文件对话框。(QFiledialog)

3、经过2之后打开了图片到列表中,这时候又想,选择列表里的图片应该可以产生预览效果。(QLabel)


4、图片产生了预览之后就是开始了正在的难点。把用户选择的图片组合成MP4或者EXE来播放。
产生如下问题:怎么把图片组合成MP4或者EXE呢?
对此的应对为:
1)、想通过网络上的现有工具来进行包装。
当时只想了方案1,于是就开始疯狂的百度, CSDN, QT社区等等来进行搜索。最后发现行不通。为什么行不通呢?
是这样的,我找到了一个打包成exe的工具,然后打包完了一看。它只是把图片压缩成EXE文件,你点击EXE文件后,
它把图片解压出来,然后用windows自带的看图工具一张一张打开而已。表示吐槽下。

2)、发现1)行不通后,没办法了。只能想别的办法能不能行得通。想了一下子没想到就开始聊QQ,用手机打飞机。
突然来了灵感。想到一个法子。用xml文件来实现播放全过程。如下:
(1)、用户选择需要展示的图片。可以指定顺序,也可以不指定。
(2)、用户选择每张图片的同时要求用户选择该张图片的特效和配置的文字。当然也可以不选择。
(3)、用户选择完图片信息后,点击完成按钮后询问用户是否配置歌曲。可以配置也可以不配置。
(4)、上述信息配置完成后,把上述信息存到内存中。然后开始展示。
(5)、展示完成之后询问用户是否保存本次的配置信息。若保存则写入到xml文件中,不保存就
清空内存。
(6)、以后打开后,询问用户是否读取上一次的配置或者由用户点击回放按钮选择对应的记录。选择完成后
读取xml文件内保存的配置信息到内存,然后进行演示。
好了,到这里个人感觉没问题了。然后就开始了新一轮的代码编码之路。好吧,遇到难题了。
问题如下:
如何在一个QLabel上连续的画几张图片?看如下代码:


void MakeMovie::DisplayPicture()
{
    int w = ui->label->width();
    int h = ui->label->height();


    QStringList::const_iterator itPicPath = m_lstPicturePath.begin();
    for(; itPicPath != m_lstPicturePath.end(); ++itPicPath)
    {
        const QString& strPath = *itPicPath;
        qDebug() << strPath;


        QPixmap pix;
        pix.load(strPath);
        pix = pix.scaled(w, h, Qt::IgnoreAspectRatio);


        ui->label->setPixmap(pix);
        m_Thread->usleep(3000000);
        ui->label->clear();
    }


    timer->stop();


    return ;
}


Qt版电子相册_第1张图片

  

你可能感兴趣的:(Qt)