案例分享:Qt出版社书籍配套U盘资源播放器软件定制(脚本关联播放器与资源文件,播放器,兼容win7,win10和mac)

简介: 案例分享:Qt出版社书籍配套U盘资源播放器软件定制(脚本关联播放器与资源文件,播放器,兼容win7,win10和mac)

需求

  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



相关文章
|
C++
基于Qt的简易音乐播放器设计与实现
基于Qt的简易音乐播放器设计与实现
897 0
|
网络协议
Qt中的网络编程(Tcp和Udp)运用详解以及简单示范案例
Tcp和Udp是我们学习网络编程中经常接触到的两个通讯协议,在Qt也被Qt封装成了自己的库供我们调用,对于需要进行网络交互的项目中无疑是很重要的,希望这篇文章可以帮助到大家。 是关于Qt中TCP和UDP的基本使用和特点:
2559 7
|
开发者
Qt中的事件该如何学习?(附带案例)
事件是Qt中比较重要的一部分,在初期如果理解不当学习可能会比较困难,这里提一嘴当初教我的那位老师水平是真的高,让我很轻易的就理解了事件的概念。 在平时我们见到那些界面上的某些快捷键就有可能是事件做的,例如ESC关闭窗口,Enter提交或者登录这种类似的,这也是事件的强大之处。
840 1
|
人工智能 编译器 C++
新版Qt6快速打包程序脚本
不知道啥时候Qt更新了,目前是6.7.0,项目默认的生成路径改了, 从 项目目录的同级目录 改为了 项目目录中的build目录, 之前的脚本也用不了了,所以用AI更新了一下脚本, 希望能帮到大家,方便快速打包程序到桌面。
628 9
|
11月前
|
前端开发 安全 测试技术
Postman Mac 版安装终极指南:从下载到流畅运行,一步到位
Postman 是 API 开发与测试的高效工具,支持各类 HTTP 请求调试与团队协作。本文详解 Mac 版下载、安装步骤,助你快速上手。同时推荐一体化 API 协作平台 Apifox,集文档、调试、测试于一体,提升开发效率与团队协同能力。