当前位置: 首页 > news >正文

天河商城型网站建设app制作教程模板

天河商城型网站建设,app制作教程模板,怎么网上推广自己的门店,云南省建设厅网站二建文章目录 一#xff0e;前言二#xff0e;环境1.开发环境2.打包环境3.运行环境 三#xff0e;软件截图1.启动页2.视频播放3.音频播放4.其他1.托盘2.对话框 四#xff0e;功能总览五#xff0e;代码展示心得1.UI设计2.如何防止卡顿3.如何自定义组件 五#xff0e;思考… 文章目录 一前言二环境1.开发环境2.打包环境3.运行环境 三软件截图1.启动页2.视频播放3.音频播放4.其他1.托盘2.对话框 四功能总览五代码展示心得1.UI设计2.如何防止卡顿3.如何自定义组件 五思考1.解码器2.播放列表 六总结 一前言 前面做过一款python3GUI–做一款弹幕视频播放器(第二弹v1.5)By:PyQt5附下载地址仿作了一款支持播放在线、本地音乐、视频的多功能播放器本次仍然使用PyQt5制作一款音视频播放器、UI风格参考了暴风影音下面我将详细介绍一下我开发的这款“风暴影音”播放器。放个图比较一下。 二环境 1.开发环境 本次开发是在window11上使用pycharm开发工具开发的详细开发环境如下 系统Windows 11 家庭中文版处理器AMD Ryzen 7 7735H with Radeon Graphics 3.20 GHz开发工具PyCharm 2021.3Python版本Python3.8PyQt版本PyQt5 5.15.9pip版本pip 24.0 2.打包环境 nuitka打包版本2.0.5 详细参数见下图 3.运行环境 对于已打包好的exe文件需要安装对应版本的解码器才能正常使用本播放器解码器下载地址放在了下面 https://wwt.lanzoul.com/ickJ81rkm50b 大家下载安装好解码器后再打开本播放器即可正常使用播放器。 三软件截图 1.启动页 启动页是我们打开软件后看到的第一个页面它大致展示了软件的基本功能 主界面分为四个区域最顶端为标题区域中间左边为主播放区域内部包含欢迎页面、视频页面、音频页面中间右侧为播放列表区域最下方为播放控制区域。 2.视频播放 通过在主界面或播放列表的号添加本地视频文件到播放列表选择播放视频文件本播放器支持多种视频格式包括不限于mp4, “rmbv”, “mkv”, “3gp”, “m3u8”, “avi”, “m4v”, “ts”, “flv”, “m4s”。 3.音频播放 添加方式和添加视频类似支持的播放的音频类别包括不限于mp3, “m4a”, “aac”, “flac”在播放列表项目右击展示右击菜单右击菜单包括对单文件的操作和对播放列表的操作。 4.其他 1.托盘 本次自定义了托盘的样式托盘的逻辑目前只有“退出”能够响应其他操作均为跳转到笔者博客主页。 2.对话框 本次自定义了对话框的样式这样可以使得我们的整体UI风格比较统一对话框之间通过使用继承的方式实现不同的效果提高了代码复用。 信息对话框 询问对话框 输入对话框 四功能总览 博文不如视频说的清楚、明白遂备一张思维导图以详细展示本软件所有功能。 五代码展示心得 每次做新的项目都会有点收货在此模块记录下自己的心得体会和大家分享一下代码思路。 1.UI设计 本次采用组件化思想对整个项目进行拆分按照UI布局整体拆分成了4个部分对每一部分的组件继续拆分直到无法再分拆分到单个组件的最小单位。本次UI设计并没有使用Designer进行布局使得本次项目UI设计比较抽象但是如果自己心里清楚每一部分的话就有一个整体全局观。 在下图的代码中我们能看到主界面被分成了四个部分整体采用垂直布局内部采用一个QSplitter将主播放区域和播放列表区域水平分开这样设计的好处是用户可以自行手动调节中间区域的大小给予用户较大的灵活性。 2.如何防止卡顿 软件使用过程中卡顿是用户不能容忍的当UI卡顿时用户会感觉到程序响应缓慢操作不流畅。长时间等待和界面无响应会让用户感到不耐烦降低对程序的满意度。 本次采用多线程的方式处理耗时操作本软件的耗时操作主要是读取本地文件的基本信息我们可以把这个耗时操作放到子线程中当读取完后使用发射信号的方式把数据发射到主程序中最后使用槽函数接收信号处理数据。 上面的思路体现到代码中就是通过继承QThread的方式来处理耗时操作具体使用方法见下图 下面也有一些能够解决PyQt5 UI卡顿的思路大家可以尝试 优化代码逻辑检查程序中是否存在长时间运行的操作或大量计算尝试将这些操作放在单独的线程中执行以避免阻塞主线程。使用合适的布局和控件选择适合程序需求的布局和控件避免使用过于复杂或不必要的布局和控件以减少渲染和计算负担。减少界面元素适当减少界面上的元素数量特别是动态加载的元素以降低界面渲染的复杂度。使用缓存和异步加载对于需要频繁加载的数据或图片等资源可以使用缓存和异步加载技术提高加载速度和效率。升级硬件和软件如果程序对硬件要求较高可以考虑升级计算机硬件。同时保持PyQt5和相关依赖库的版本更新以利用最新的性能优化和修复。 3.如何自定义组件 这个问题比较基础在此说下我的思路就拿下面音量调节组件来说它的基类是一个横向的QSlider通过重写鼠标事件来控制展示的样式。 相关代码如下 import sysfrom PyQt5 import QtCore from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QApplication, QSliderclass NormalHorizontalSlider(QSlider):通用水平进度条def __init__(self, pNone):super(NormalHorizontalSlider, self).__init__(p)self.setOrientation(Qt.Horizontal)self.setMinimum(0)class VolumeSlider(NormalHorizontalSlider):音量调节sliderhorizontal_scrollBar_normal_style QSlider::groove:horizontal {border: 1px solid rgb(50,50,50);background: rgb(50,50,50);height:4px;border-radius: 1px;padding-left:-1px;padding-right:-1px;padding-top:-2px;padding-bottom:-2px;}QSlider::handle:hover{width: 5px;height: 5px;}QSlider::sub-page:horizontal {background: rgb(27,157,255);border: 1px solid rgb(27,157,255);height: 10px;border-radius: 1px;}QSlider::handle:horizontal{background: #09a1ff;border: 0px solid #09a1ff;width: 0px;height: 0px;margin-top: 0px;margin-bottom: 0px;border-radius: 6px;}horizontal_scrollBar_style QSlider::groove:horizontal { border: 1px solid rgb(50,50,50); background: rgb(50,50,50); height:4px; border-radius: 1px; padding-left:-1px; padding-right:-1px; padding-top:-2px; padding-bottom:-2px; }QSlider::handle:hover{width: 5px; height: 5px; }QSlider::sub-page:horizontal { background: rgb(27,157,255); border: 1px solid rgb(27,157,255); height: 10px; border-radius: 1px; }QSlider::handle:horizontal {background: #09a1ff;border: 1px solid #09a1ff;width: 10px;height: 10px;margin-top: -4px;margin-bottom: -4px;border-radius: 6px; }def __init__(self, pNone):super(VolumeSlider, self).__init__(p)self.setSingleStep(5)self.setFixedWidth(70)self.setMaximum(100)self.setValue(100)self.setCursor(Qt.PointingHandCursor)self.setStyleSheet(self.horizontal_scrollBar_normal_style)def enterEvent(self, a0: QtCore.QEvent) - None:self.setStyleSheet(self.horizontal_scrollBar_style)super(VolumeSlider, self).enterEvent(a0)def leaveEvent(self, a0: QtCore.QEvent) - None:self.setStyleSheet(self.horizontal_scrollBar_normal_style)super(VolumeSlider, self).leaveEvent(a0)if __name__ __main__:QApplication.setHighDpiScaleFactorRoundingPolicy(Qt.HighDpiScaleFactorRoundingPolicy.PassThrough)QApplication.setAttribute(Qt.AA_EnableHighDpiScaling)QApplication.setAttribute(Qt.AA_UseHighDpiPixmaps)app QApplication(sys.argv)app.setAttribute(Qt.AA_DontCreateNativeWidgetSiblings)win VolumeSlider()win.show()sys.exit(app.exec_()) 五思考 1.解码器 如果遇到了DirectShowPlayerService::doSetUrlSource: Unresolved error code 0x80004005 (δ???)90%是因为没有安装或正确安装解码器。 大家在使用本软件之前切记要下载对应的解码器以保证视频的正常播放。 2.播放列表 本次播放列表的实现是通过QMediaPlayerQMediaPlaylist的方式实现的但是写到播放列表“删除”操作的时候发现只要是当前正在播放视频删除当前视频前面的视频就会导致播放器停止播放。这里我思考了是因为播放列表移除项目后会导致QMediaPlaylist的索引发生改变这样会很影响体验。 为此笔者对上面思路进行了改进即不使用QMediaPlaylist通过手写播放模式的方式控制当前播放列表每次保证播放器的播放列表只有一个媒体如果在列表中移除了非当前播放的项目并不会引起播放器状态改变。 下载地址https://wwt.lanzoul.com/ikucA1rmby0b 六总结 本次使用PyQt5最做了一款仿暴风影音的音视频播放器支持多种文件格式相关功能丰富在博文中详细介绍了软件开发的设计思路也贴出了部分代码与大家讨论提出了我的思考欢迎大家在评论区和我讨论交流
http://www.zqtcl.cn/news/941123/

相关文章:

  • 郑州做网站kuihuakeji软文发布的平台与板块
  • 一那个网站可以做一建题安全文化企业示范企业评价标准
  • 网站没有关键词收录phpstudy配置网站
  • 返利网站怎么做的做网站推广见客户的话术
  • 两个人看的视频在线观看成都网站seo厂家
  • 做汽车配件出口用什么网站好些微信朋友圈营销技巧
  • 怎样建设传奇网站空间什么做电子书下载网站
  • 自己怎么做dj 视频网站网站模板制作教程视频
  • 苏州瑞熙网站建设签名图片在线制作
  • 重庆建站模板大全给公司创建网站
  • king cms网站建设上海传媒公司有哪些
  • 优时代网站建设网站建设哪家公司最好
  • 做网站有多难平面设计学徒要学多久
  • 包装网站模板做西式快餐店网站
  • 泉州制作网站软件九歌人工智能诗歌写作网站
  • wordpress安装时失败网站后台seo设置
  • 顺企网吉安网站建设网站设计师岗位职责
  • 佛山市品牌网站建设价格网站设计模板免费
  • 澧县网站建设常用的oa系统办公软件
  • 江门网站推广哪里专业网站显示百度地图
  • 上海微网站网站的营销推广方案及预算
  • 灌南住房建设局网站南京网站开发南京乐识好
  • 万网网站建设步骤公司建设网站能提升什么竞争力
  • 门户网站 页面集成防内涵吧网站源码
  • 二手房发布网站怎么做有哪个网站有免费视频素材
  • 张浦专业做网站纯html5网站
  • qq互联 网站开发北京博洛尼装饰公司
  • 企业网站模板建站广州红盾信息门户网站
  • 做网站都用到哪些软件商品网站建设方案
  • 集美区网站建设下面软件是网页制作平台的是( )