pyqt5可视化界面编程,pyqt5设计界面
本文主要介绍如何使用Pyqt5制作屏幕录制界面,以及如何使用ffmpeg将同时录制的屏幕视频和音频合成为有声屏幕视频。有需要的可以参考一下。
00-1010应用平台窗口设置主窗口代码选择窗口代码汇总最近我用录屏软件录了一下桌面。在使用的过程中,我突发奇想。可以用python做屏幕记录工具,锻炼动手能力吗?
接下来,我将撰写一系列关于如何使用python作为屏幕录制工具的文章:
录制屏幕制作视频
录制音频
复合视频、音频
基于pyqt5制作可视化窗口
关于以上四个部分,希望能尽快完善。前两篇文章分享了使用opencv制作屏幕录制部分,使用PyAudio录制音频。本文分享了如何使用ffmpeg将同时录制的屏幕视频和音频合成为声音屏幕视频。
目录
windows 10python 3.7ffmpeg
应用平台
暂定窗口显示效果如下,大小固定:
在左侧,显示当前捕获的窗口图像。在右侧,选择区域:点击按钮,会出现一个半透明的框。单击鼠标左键进行选择,然后释放选择。此时按钮会显示所选窗口的大小,左侧会显示当前所选位置的图像。录音鼠标:默认录音,录音时如果鼠标频闪是正常的。录制帧率:10~60,默认为15,步长单位为1。音源:将读取并显示当前设备支持的录音硬件,不可选择,即不录音。保存目录:选择当前录制音频的保存位置,第一次录制时必须选择。该规则被命名为当前时间戳,并且该时间戳将在每次记录后被更新为新的文件名。开始/停止:开始或停止录制桌面视频的快捷方式F7。
窗口设置
在窗户设计中选择合适的组件是非常重要的。可以使用QtDesigner,拉组件并画出合适的窗口大小,用pip install pyqt5-tools安装。QtDesigner工具可以在包路径中找到。布局后将ui文件导出为py文件,在后续的函数绑定中继续使用,或者使用代码编码创建窗口。
来自PyQt5。QtWidgets导入(QMainWindow,QApplication,QDesktopWidget,QWidget,QFrame,
QLabel,QPushButton,QComboBox,QCheckBox,QSpinBox,QDialog,QFileDialog,QMessageBox)
来自PyQt5。QtGui导入QIcon,QFont,QColor,QImage,QPixmap,QPen,QPainter
来自PyQt5。QtCore导入QRect,Qt,QPoint,QMetaObject,QThread
类Ui _ main window(QMainWindow):
主窗口设置
def __init__(self):
超级()。__init__()
self . Set object name( main window )#设置窗口对象名。
Self.setWindowTitle(屏幕录制)#设置窗口标题。
Self.resize(512,352) #设置窗口大小
Self.setupUi() #设置显示部分。
将显示self.show() #窗口
def setipUi(self):
#设置窗口需要显示的部分。
# self . centralwidget=q widget(self)零件承运商
# self . central widget . set object name( central widget )
# tab框设置:QLabel(self.centralwidget)
#复选框设置:QCheckBox(self.centralwidg
et)
# 按键设置: QPushButton(self.centralwidget)
# 调度框设置: QSpinBox(self.centralwidget)
def main():
"""运行函数"""
app = QApplication(sys.argv)
app.setAttribute(Qt.AA_UseHighDpiPixmaps)
ui = Ui_MainWindow()
sys.exit(app.exec_())
if __name__ == __main__:
main()
划选窗口代码
在录制桌面屏幕有只录制部分界面的需求,这需要设置一个事件来完成划选的动作,这里选择重新打开一个窗口来充满整个屏幕,鼠标在新建立的画面中可以滑动鼠标以选择需要录制的窗口部分。
class MousePaint(QDialog):
监听鼠标事件在Pyqt5中都有相应的事件方法,这里只需要重载函数,并在对应函数方法下定义在本次监听事件中需要完成怎样的任务即可。
跟主窗口函数部分进行照应,当按下选择区域
按钮后,打开屏幕捕获窗口,当选择完成时,返回窗口位置及大小,在主窗口显示窗口画面及大小。
在窗口运行过程中录制视频,如果未在程序中设置线程进行任务会造成窗口界面出现卡死现象,所以在调用录制视频和录制音频部分,可以使用线程与界面运行程序进行分离。
例如:
from PyQt5.QtCore import QThread # Pyqt5的QThread类
总结
用python动手做一个屏幕录制工具到这里已经完成了,后续如果有改进部分依旧会更新文章,此系列中使用了很多第三方包,也就是因为python第三包繁多且优质,可以减少很多时间,通过这些第三方包来组建自己想要实现程序。由于总体代码限于文章篇幅,已经该系列文章所提到的代码上传至github,如有兴趣,可下载测试。
源码储存仓库:
https://github.com/lk-itween/FunnyCodeRepository/tree/main/Screenshot
软件链接提取:
如需测试生成的软件(仅windows平台)。
github
本地网盘下载:
链接: https://pan.baidu.com/s/1TqQ1JH-M15f4RfVI0_DxPQ?pwd=92ds
提取码: 92ds
到此这篇关于使用Pyqt5制作屏幕录制界面的文章就介绍到这了,更多相关Pyqt5屏幕录制界面内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。