Qt シンプルイメージプレーヤー

I.はじめに

Qt を使用して簡単な画像プレーヤーを作成し、[参照] ボタンをクリックして画像が配置されているディレクトリを参照します。ディレクトリ内のすべての画像が、アイコンと名前が縮小されて左側の画像リストに表示されます。リスト内の画像アイテムをクリックすると、右側の領域のラベルに png、img、gif、およびその他の形式の画像を表示または再生できます。概略図は次のとおりです。

 この記事のメリット、Qt 開発学習教材パッケージの受け取り料金、技術ビデオ、コンテンツには (C++ 言語基礎、Qt プログラミング入門、QT シグナルとスロットのメカニズム、QT インターフェイス開発イメージ図、QT ネットワーク、QT データベース プログラミング、QT プロジェクト戦闘、QSS、OpenCV、Quick モジュール、インタビューの質問など) ↓↓↓↓↓↓ 下記を参照

2. エンジニアリングコード

具体的なコードは次のとおりです。

ヘッダー ファイル imgPlayer.h

#ifndef IMGPLAYER_H
#define IMGPLAYER_H

#include <QMainWindow>
#include <QFileDialog>
#include <QMovie>
#include <QDebug>

namespace Ui {
class ImgPlayer;
}

class ImgPlayer : public QMainWindow
{
    Q_OBJECT

public:
    explicit ImgPlayer(QWidget *parent = nullptr);
    ~ImgPlayer();

private slots:
    void on_openImgButton_clicked(); //浏览按钮-点击槽函数
    void on_imgListWidget_clicked(const QModelIndex &index); //图片列表-点击槽函数

private:
    Ui::ImgPlayer *ui;

    QString m_imgDirPath; // 图片所在目录的具体路径
};

#endif // IMGPLAYER_H

ソースファイル imgPlayer.cpp

#include "imgplayer.h"
#include "ui_imgplayer.h"

ImgPlayer::ImgPlayer(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::ImgPlayer)
{
    ui->setupUi(this);
}

ImgPlayer::~ImgPlayer()
{
    delete ui;
}

//浏览按钮-点击槽函数
void ImgPlayer::on_openImgButton_clicked()
{
    m_imgDirPath = QFileDialog::getExistingDirectory(this); // 获取图片所在目录的具体路径
    ui->imgComboBox->addItem(m_imgDirPath); // 添加打开目录的绝对路径并显示
    QDir dir(m_imgDirPath);
    QFileInfoList fileInfoList = dir.entryInfoList(QDir::Files); // 获取目录下的文件

    QString filePath; // 保存图片图片的绝对路径
    // 在QListWidget中列出目录下的文件
    for(int i=0; i<fileInfoList.count(); i++)
    {
        filePath.clear(); //清除上一次图片路径内容
        filePath.append(m_imgDirPath + "/" + fileInfoList.at(i).fileName()); // 获得图片文件的绝对路径

        if(fileInfoList.at(i).fileName() == "." || fileInfoList.at(i).fileName() == "..") // 跳过这两个隐藏目录
        {
            continue;
        }
        QListWidgetItem *item = new QListWidgetItem(QIcon(filePath), fileInfoList.at(i).fileName()); // 建立图片缩小图标
        ui->imgListWidget->addItem(item); // 把图片缩小图标和名称显示在列表窗口中
    }
}

//图片列表-点击槽函数
void ImgPlayer::on_imgListWidget_clicked(const QModelIndex &index)
{
    Q_UNUSED(index);

    QString imgPath = (m_imgDirPath + "/" + ui->imgListWidget->currentItem()->text());

    if(imgPath.endsWith(".gif") || imgPath.endsWith(".Gif")) //判断是否是gif动图
    {

        QMovie *movie =new QMovie(imgPath);
        ui->imgLabel->setMovie(movie);
        movie->start();
    }
    else
    {
        ui->imgLabel->setPixmap(QPixmap(imgPath)); // 在imgLabel标签上显示图片
    }
}

ui文件 imgPlayer.ui

 

この記事は Blog Garden (fengMisaka) から転送されました: Qt Simple Image Player - fengMisaka - Blog Garden

この記事のメリット、Qt 開発学習教材パッケージの受け取り料金、技術ビデオ、コンテンツには (C++ 言語基礎、Qt プログラミング入門、QT シグナルとスロットのメカニズム、QT インターフェイス開発イメージ図、QT ネットワーク、QT データベース プログラミング、QT プロジェクト戦闘、QSS、OpenCV、Quick モジュール、インタビューの質問など) ↓↓↓↓↓↓ 下記を参照

おすすめ

転載: blog.csdn.net/QtCompany/article/details/131903693