Qt视频播放器项目

一.创建项目

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二.设计UI

在这里插入图片描述
在这里插入图片描述

按钮与名称的对应

打开视频按钮 -> pushButton_Open
播放按钮 -> pushButton_Play
暂停按钮 -> pushButton_Pause
停止按钮 -> pushButton_Stop
音量按钮 -> pushButton_Sound

设置图标

在项目目录下创建images文件夹,把图标放进去

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

全选如下图标

在这里插入图片描述
在这里插入图片描述

ctrl+s保存

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ctrl+s保存

在这里插入图片描述

添加文件名称标签,进度条,播放进度标签

在这里插入图片描述

添加group box,框住文件名称,进度条,播放进度。 
如上一步一致,把group box放到后面

给窗口添加图标

在这里插入图片描述

固定窗口使它无法随便拖动修改大小

在这里插入图片描述

给两个滑动条设置变量名为:

horizontalSlider1
horizontalSlider2

修改滑动条样式

   ui->horizontalSlider1->setStyleSheet(
                "QSlider::groove:horizontal {"
                "border:1px solid skyblue;"
                "background-color:skyblue;"
                "height:10px;"
                "border-radius:5px;"
                "}"

                "QSlider::handle:horizontal{"
                "background:qradialgradient(spread:pad,cx:0.5,cy:0.5,radius:0.5,fx:0.5,fy:0.5,stop:0.7 white,stop:0.8 rgb(140,212,255));"
                "width:20px;"
                "border-radius:10px;"
                "margin-top:-5px;"
                "margin-bottom:-5px;}"

                "#horizontalSlider::sub-page:horizontal{"
                "background:red:"
                "margin:5px;"
                "border-radius:5px;}"
                );
   ui->horizontalSlider2->setStyleSheet(
                "QSlider::groove:horizontal {"
                "border:1px solid skyblue;"
                "background-color:skyblue;"
                "height:10px;"
                "border-radius:5px;"
                "}"

                "QSlider::handle:horizontal{"
                "background:qradialgradient(spread:pad,cx:0.5,cy:0.5,radius:0.5,fx:0.5,fy:0.5,stop:0.7 white,stop:0.8 rgb(140,212,255));"
                "width:20px;"
                "border-radius:10px;"
                "margin-top:-5px;"
                "margin-bottom:-5px;}"

                "#horizontalSlider::sub-page:horizontal{"
                "background:red:"
                "margin:5px;"
                "border-radius:5px;}"
                );

把上面两个滑动条样式的代码放到如下位置:

在这里插入图片描述
运行结果:
在这里插入图片描述

实现视频播放功能

添加关于视频和语音的包

在这里插入图片描述

在头文件中添加相关的包

#pragma execution_character_set("utf-8")
#include <QDialog>
#include <QMediaPlayer>
#include <QMediaPlaylist>
#include <QVideoWidget>
#include <QGraphicsVideoItem>
#include <QFileDialog>
#include <QGraphicsScene>
#include <QMessageBox>

在头文件的类里定义对象 和 创建槽函数的声明

private:
    QMediaPlayer *player;
    QGraphicsVideoItem * videoitem;
    QString duration_time,position_time; //播放时间
private:
    void onStateChanged(QMediaPlayer::State state);
    void onDurationChanged(qint64 duration);
    void onPositionChanged(qint64 position);

给每个按钮添加点击事件的槽函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

框中的按钮全都进行上述操作

待更新

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/381764.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024 [arXiv] ST-LLM——时空大语言模型用于交通预测

这应该是第一个将LLM用于交通预测&#xff08;时空图预测&#xff09;&#xff0c;这篇由南洋理工大学龙程&#xff08;Cheng Long&#xff09;老师团队与商汤&#xff0c;北大和德国科隆大学&#xff08;Cologne&#xff09;合作完成。且抢先使用了最通用的名字时空大模型名字…

CodeWave学习笔记--博物馆预约管理系统

场馆信息管理页面搭建&#xff08;PC&#xff09; 首先是场馆实体的创建 页面的搭建 在总览界面下创建子界面venueManage界面 现在总览页中实现跳转场馆管理子界面 设计场馆管理界面 效果 访客预约申请页面搭建&#xff08;H5&#xff09; 添加H5端&#xff0c;点击确认即可 …

Bean 的作用域

Bean 的作用域种类 在 Spring 中⽀持 6 种作⽤域&#xff0c;后 4 种在 Spring MVC 环境才⽣效 1. singleton&#xff1a;单例作⽤域 2. prototype&#xff1a;原型作⽤域&#xff08;多例作⽤域&#xff09; 3. request&#xff1a;请求作⽤域 4. session&#xff1a;会话作⽤…

JDK新特性

JDK新特性 函数式接口和Lambda 表达式Stream流操作新日期API操作其他新特性 Lambda 是一个匿名函数&#xff0c;我们可以把 Lambda表达式理解为是一段可以传递的代码&#xff08;将代码 像数据一样进行传递&#xff09;。可以写出更简洁、更 灵活的代码。作为一种更紧凑的代码…

操作系统-【预备学习-1】(Linux 文件目录)

文章目录 相关知识目录结构进入目录补充查看目录创建文件删除文件创建文件夹删除文件夹文件和文件夹拷贝文件和文件夹移动/重命名 任务要求 相关知识 目录结构 Linux 文件系统是树形层次结构&#xff0c;具体如下图所示&#xff0c;最重要的是根目录&#xff08;/&#xff09…

8868体育助力西甲皇家马德里俱乐部 帮助球队把握榜首大战

西甲的皇家马德里足球俱乐部是8868体育合作的俱乐部之一&#xff0c;皇家马德里目前取得18胜3平1负的成绩&#xff0c;排名西甲联赛第一的位置&#xff0c;本赛季主场也有着9胜1平的不败成绩&#xff0c;处于第二的位置&#xff0c;主场的发挥相当突出。目前皇家马德里已经是重…

2.8学习总结

2.8 1.二叉树的前序遍历 2.二叉树的中序遍历 3.二叉树的后序遍历 4.⼆叉树的层序遍历 5.⼆叉树的层序遍历2 6.二叉树的右视图 7.二叉树的层平均值 8.N叉树的层序遍历 9.每个树行中找最大值 10.填充每个节点的下一个右侧节点指针 11.填充每个节点的下一个右侧节点指针2 12.生命之…

HCIA-HarmonyOS设备开发认证V2.0-3.2.轻量系统内核基础-时间管理

目录 一、时间管理1.1、时间接口 一、时间管理 时间管理以系统时钟为基础&#xff0c;给应用程序提供所有和时间有关的服务。系统时钟是由定时器/计数器产生的输出脉冲触发中断产生的&#xff0c;一般定义为整数或长整数。输出脉冲的周期叫做一个“时钟滴答”。系统时钟也称为…

【GO语言卵细胞级别教程】04.GO函数介绍

【GO语言卵细胞级别教程】04.GO函数介绍 目录&#xff1a; 【GO语言卵细胞级别教程】04.GO函数介绍0.创建项目1.函数的引入2.注意事项3.详细介绍3.1 形参介绍 0.创建项目 创建目录 执行命令加载模块 cd 02.gostudy目录下 1.进入目录下 cd 02.gostudy 2.初始化模块变量 go …

【计算机网络】时延,丢包,吞吐量(分组交换网络

时延 结点处理时延(nodal processing delay&#xff09; dproc 排队时延&#xff08;queuing delay&#xff09; dqueue 传输时延&#xff08;transmission delay&#xff09; dtrans 路由器将分组推出所需要的时间&#xff0c;是分组长度和链路传输速率的函数 传播时…

第四篇:SQL语法-DDL-数据定义语言

大年初一限定篇&#x1f600; &#xff08;祝广大IT学习者、工作者0 error 0 warning&#xff01;&#xff09; 一&#xff0c;DDL数据库操作 &#xff08;一&#xff09;库的查询操作 1.列出所有已定义数据库 show databases; 2.查询当前所处数据库 select database(); &…

Matlab使用点云工具箱进行点云配准ICP\NDT\CPD

一、代码 主代码main.m&#xff0c;三种配准方法任选其一 % 读取点云文件 source_pc pcread(bun_zipper.ply); target_pc pcread(bun_zipper2.ply);% 下采样 ptCloudA point_downsample(source_pc); ptCloudB point_downsample(target_pc);% 配准参数设置 opt param_set…

【初中生讲机器学习】7. 交叉验证是什么?有哪些?怎么实现?来看!

创建时间&#xff1a;2024-02-10 最后编辑时间&#xff1a;2024-02-10 作者&#xff1a;Geeker_LStar 你好呀~这里是 Geeker_LStar 的人工智能学习专栏&#xff0c;很高兴遇见你~ 我是 Geeker_LStar&#xff0c;一名初三学生&#xff0c;热爱计算机和数学&#xff0c;我们一起加…

【深度学习:SegGPT】在上下文中分割所有内容 [解释]

【深度学习&#xff1a;SegGPT】在上下文中分割所有内容 [解释] SegGPT与以前的模型相比如何&#xff1f;SegGPT在实践中是如何工作的&#xff1f;SegGPT培训计划上下文着色上下文集成上下文调整SegGPT 训练参数 如何尝试 SegGPT&#xff1f;使用哪些数据集来训练 SegGPT&#…

Spring基础 - Spring简单例子引入Spring要点

Spring基础 - Spring简单例子引入Spring要点 设计一个Spring的Hello World 设计一个查询用户的案例的两个需求&#xff0c;来看Spring框架帮我们简化了什么开发工作 pom依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"htt…

vue.js基于springboot的实验室设备管理系统10345

(1)设备信息模块&#xff1a;记录设备的基本信息&#xff0c;如设备采购来源信息、设备需求量、当前数量、日期等。 (2) 用户模块&#xff1a;教师职工。实现对用户个人信息、消息管理和实验室设备的查询使用申请等。 (3) 管理员模块&#xff1a;实现对所有设备信息的增删改查&…

Android用setRectToRect实现Bitmap基于Matrix矩阵scale缩放RectF动画,Kotlin(二)

Android用setRectToRect实现Bitmap基于Matrix矩阵scale缩放RectF动画&#xff0c;Kotlin&#xff08;二&#xff09; 文章 https://zhangphil.blog.csdn.net/article/details/135980821 实现了基于Matrix缩放Bitmap的动画&#xff0c;但是从左上角&#xff08;0,0&#xff09;位…

FPGA_简单工程_状态机

一 理论 fpga是并行执行的&#xff0c;当处理需要顺序解决的事时&#xff0c;就要引入状态机。 状态机&#xff1a; 简写FSM&#xff0c;也称同步有限状态机。 分为&#xff1a;more型状态机&#xff0c;mealy型状态机。 功能&#xff1a;执行该事件&#xff0c;然后跳转到下…

幻兽帕鲁服务器怎么更新?进入游戏显示:加入的比赛正在运行不兼容的版本,请尝试升级游戏版本(阿里云)

幻兽帕鲁服务器怎么更新&#xff1f;进入游戏显示&#xff1a;加入的比赛正在运行不兼容的版本&#xff0c;请尝试升级游戏版本。这是因为游戏客户端或者服务器上的游戏服务端&#xff0c;没有更新版本。导致两个版本不一致&#xff0c;所以无法进入游戏。 最近幻兽帕鲁 官方客…

统计数字出现次数的数位动态规划解法-数位统计DP

在处理数字问题时,我们经常遇到需要统计一定范围内各个数字出现次数的情况。这类问题虽然看起来简单,但当数字范围较大时,直接遍历统计的方法就变得不再高效。本文将介绍一种利用数位动态规划(DP)的方法来解决这一问题,具体来说,是统计两个整数a和b之间(包含a和b)所有…