若该文为原创文章,转载请注明原文出处
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/115919546

长期持续带来更多项目与技术分享,咨询请加QQ:21497936、微信:yangsir198808

红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…(点击传送门)

合作案例专栏:案例分享(体验Demo可下载,只定制)


需求

  1.播放器软件,插入U盘运行;
  2.每个菜单和视频可自由配置;
  3.适配分辨率,鼠标按下任意处可拽拖软件;
  4.播放器进度条,播放暂停,音量,大小屏切换;
  5.兼容win7,win10,mac系统;


相关博客

  《案例分享:Qt视频播放器控件(不依赖系统编解码)
  《Qt实用技巧:使用QMediaPlayer播放mp4文件
  《Qt实用技巧:使用QMediaPlayer和Windows自带组件播放swf、rmvb、mpg、mp4等视频文件
  《项目实战:Qt+OpenCV视频播放器(支持播放器操作,如暂停、恢复、停止、时间、进度条拽托等)
  《项目实战:Qt+OpenCV作摄像头拍照、调节参数和视频录制


Demo

  
  
  配置脚本文件,可以配置3-6页的信息和播放文件路径,如下图:
  
  
  第三张图效果如下:
  
  
  

  
  点击黄色文件,进入全屏播放,可调节进度条,声音,播放状态,也可缩小播放窗口:
  
  非全屏的播放如下:
  


头文件源码

#ifndef UPANVIDEOWIDGET_H
#define UPANVIDEOWIDGET_H

#include <QWidget>
#include <QPushButton>
#include <QHash>
#include <QFrame>

#define CONFIG ("config")
#define FILENAME ("menu")

// windows系统改为1,mac系统改为0
#if 1

// windows系统的时候
#define MAC (0)
#define WINDOW (1)

#else

// mac系统的时候
#define MAC (1)
#define WINDOW (0)

#endif

namespace Ui {
class UPanVideoWidget;
}

class UPanVideoWidget : public QWidget
{
    Q_OBJECT

    struct Page
    {
        Page()
        {
        }
        QList<QPushButton *> listPushButton;
        QList<QPushButton *> listPushButton2;
        QList<QPushButton *> listPushButton3;
        QList<QPushButton *> listPushButton4;
        QList<QString> listString4;
        QList<QPushButton *> listPushButton5;
    };
public:
    explicit UPanVideoWidget(QWidget *parent = 0);
    ~UPanVideoWidget();

protected:
    void resizeEvent(QResizeEvent *event);
    void paintEvent(QPaintEvent *event);

    void mousePressEvent(QMouseEvent *event);
    void mouseMoveEvent(QMouseEvent *event);
    void mouseReleaseEvent(QMouseEvent *event);

protected:
    void init();
    void loadConfigFile();
    void showPage();

protected slots:
    void pushButtonClicked();

private slots:
    void on_pushButton_first_clicked();
    void on_pushButton_up_clicked();
    void on_pushButton_down_clicked();
    void on_pushButton_last_clicked();
    void on_pushButton_exit_clicked();
    void on_pushButton_min_clicked();

private:
    Ui::UPanVideoWidget *ui;
    int _currentPage;
    QList<Page> _listPage;
    QList<QFrame*> _listFrame;
    QPoint _lastPoint;
    bool _pressed;
    int _width;
    int _height;
};

#endif // UPANVIDEOWIDGET_H


若该文为原创文章,转载请注明原文出处
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/115919546

03-05 22:56