You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
234 lines
11 KiB
234 lines
11 KiB
# -*- coding: utf-8 -*-
|
|
|
|
# Form implementation generated from reading ui file 'findpath_UI.ui'
|
|
#
|
|
# Created by: PyQt5 UI code generator 5.15.4
|
|
#
|
|
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
|
|
# run again. Do not edit this file unless you know what you are doing.
|
|
|
|
|
|
from PyQt5 import QtCore, QtGui, QtWidgets
|
|
from PyQt5.QtCore import QTimer
|
|
from PyQt5.QtMultimediaWidgets import QVideoWidget
|
|
from PyQt5.QtMultimedia import QMediaContent, QMediaPlayer
|
|
from PyQt5.QtWidgets import QFileDialog
|
|
|
|
class Ui_MainWindow1(object):
|
|
def setupUi(self, MainWindow):
|
|
MainWindow.setObjectName("MainWindow")
|
|
MainWindow.resize(1262, 867)
|
|
self.centralwidget = QtWidgets.QWidget(MainWindow)
|
|
self.centralwidget.setObjectName("centralwidget")
|
|
#设置左侧工具栏
|
|
self.vedio_control_bar = QtWidgets.QFrame(self.centralwidget)
|
|
self.vedio_control_bar.setGeometry(QtCore.QRect(370, 770, 421, 70))
|
|
self.vedio_control_bar.setStyleSheet("QPushButton{\n"
|
|
" border:none\n"
|
|
"}")
|
|
self.vedio_control_bar.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
|
self.vedio_control_bar.setFrameShadow(QtWidgets.QFrame.Raised)
|
|
self.vedio_control_bar.setObjectName("vedio_control_bar")
|
|
self.horizontalLayout = QtWidgets.QHBoxLayout(self.vedio_control_bar)
|
|
self.horizontalLayout.setObjectName("horizontalLayout")
|
|
#设置快退按钮
|
|
self.vedio_back = QtWidgets.QPushButton(self.vedio_control_bar)
|
|
self.vedio_back.setMinimumSize(QtCore.QSize(50, 50))
|
|
self.vedio_back.setMaximumSize(QtCore.QSize(50, 50))
|
|
self.vedio_back.setText("")
|
|
icon = QtGui.QIcon()
|
|
icon.addPixmap(QtGui.QPixmap("window_png/快退.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
|
self.vedio_back.setIcon(icon)
|
|
self.vedio_back.setIconSize(QtCore.QSize(50, 50))
|
|
self.vedio_back.setObjectName("vedio_back")
|
|
self.horizontalLayout.addWidget(self.vedio_back)
|
|
#设置播放按钮
|
|
self.vedio_play = QtWidgets.QPushButton(self.vedio_control_bar)
|
|
self.vedio_play.setMinimumSize(QtCore.QSize(50, 50))
|
|
self.vedio_play.setMaximumSize(QtCore.QSize(50, 50))
|
|
self.vedio_play.setText("")
|
|
icon1 = QtGui.QIcon()
|
|
icon1.addPixmap(QtGui.QPixmap("window_png/播放.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
|
self.vedio_play.setIcon(icon1)
|
|
self.vedio_play.setIconSize(QtCore.QSize(50, 50))
|
|
self.vedio_play.setObjectName("vedio_play")
|
|
self.horizontalLayout.addWidget(self.vedio_play)
|
|
#设置快进按钮
|
|
self.vedio_forward = QtWidgets.QPushButton(self.vedio_control_bar)
|
|
self.vedio_forward.setMinimumSize(QtCore.QSize(50, 50))
|
|
self.vedio_forward.setMaximumSize(QtCore.QSize(50, 50))
|
|
self.vedio_forward.setText("")
|
|
icon2 = QtGui.QIcon()
|
|
icon2.addPixmap(QtGui.QPixmap("window_png/快进.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
|
self.vedio_forward.setIcon(icon2)
|
|
self.vedio_forward.setIconSize(QtCore.QSize(50, 50))
|
|
self.vedio_forward.setObjectName("vedio_forward")
|
|
self.horizontalLayout.addWidget(self.vedio_forward)
|
|
self.widget = QVideoWidget(self.centralwidget)
|
|
self.widget.setGeometry(QtCore.QRect(10, 20, 1191, 691))
|
|
self.widget.setObjectName("widget")
|
|
#设置进度条窗口
|
|
self.Progress_bar = QtWidgets.QFrame(self.centralwidget)
|
|
self.Progress_bar.setGeometry(QtCore.QRect(10, 710, 1201, 61))
|
|
self.Progress_bar.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
|
self.Progress_bar.setFrameShadow(QtWidgets.QFrame.Raised)
|
|
self.Progress_bar.setObjectName("Progress_bar")
|
|
#设置进度条控件
|
|
self.sld_duration = QtWidgets.QSlider(self.Progress_bar)
|
|
self.sld_duration.setGeometry(QtCore.QRect(20, 20, 1051, 22))
|
|
self.sld_duration.setOrientation(QtCore.Qt.Horizontal)
|
|
self.sld_duration.setObjectName("sld_duration")
|
|
self.sld_duration.setEnabled(True)
|
|
#设置显示时间控件
|
|
self.lab_duration = QtWidgets.QLabel(self.Progress_bar)
|
|
self.lab_duration.setGeometry(QtCore.QRect(1100, 20, 81, 21))
|
|
font = QtGui.QFont()
|
|
font.setFamily("微软雅黑")
|
|
font.setPointSize(13)
|
|
font.setBold(False)
|
|
font.setWeight(50)
|
|
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
|
|
self.lab_duration.setFont(font)
|
|
self.lab_duration.setStyleSheet("QLabel\n"
|
|
"{\n"
|
|
" color:white\n"
|
|
"}")
|
|
self.lab_duration.setObjectName("lab_duration")
|
|
MainWindow.setCentralWidget(self.centralwidget)
|
|
self.statusbar = QtWidgets.QStatusBar(MainWindow)
|
|
self.statusbar.setObjectName("statusbar")
|
|
MainWindow.setStatusBar(self.statusbar)
|
|
self.toolBar = QtWidgets.QToolBar(MainWindow)
|
|
self.toolBar.setIconSize(QtCore.QSize(40, 40))
|
|
self.toolBar.setObjectName("toolBar")
|
|
MainWindow.addToolBar(QtCore.Qt.LeftToolBarArea, self.toolBar)
|
|
#设置添加文件按钮
|
|
self.actionl1 = QtWidgets.QAction(MainWindow)
|
|
icon3 = QtGui.QIcon()
|
|
icon3.addPixmap(QtGui.QPixmap("window_png/添加文件.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
|
self.actionl1.setIcon(icon3)
|
|
self.actionl1.setObjectName("actionl1")
|
|
#设置路径分析按钮
|
|
self.actionl1_2 = QtWidgets.QAction(MainWindow)
|
|
icon4 = QtGui.QIcon()
|
|
icon4.addPixmap(QtGui.QPixmap("window_png/路径分析-2.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
|
self.actionl1_2.setIcon(icon4)
|
|
self.actionl1_2.setObjectName("actionl1_2")
|
|
self.toolBar.addAction(self.actionl1)
|
|
self.toolBar.addAction(self.actionl1_2)
|
|
self.vedio_bar = QtWidgets.QFrame(self.centralwidget)
|
|
self.vedio_bar.setGeometry(QtCore.QRect(800, 770, 150, 70))
|
|
self.vedio_control_bar.setStyleSheet("QPushButton{\n"
|
|
" border:none\n"
|
|
"}")
|
|
self.vedio_bar.setFrameShape(QtWidgets.QFrame.StyledPanel)
|
|
self.vedio_bar.setFrameShadow(QtWidgets.QFrame.Raised)
|
|
self.vedio_bar.setObjectName("vedio_bar")
|
|
#设置音量调节进度条
|
|
self.sld = QtWidgets.QSlider(self.vedio_bar)
|
|
self.sld.setGeometry(QtCore.QRect(50, 20, 50, 30))
|
|
self.sld.setOrientation(QtCore.Qt.Horizontal)
|
|
self.sld.setObjectName("sld")
|
|
self.sld.setEnabled(True)
|
|
self.lab = QtWidgets.QLabel(self.vedio_bar)
|
|
self.lab.setGeometry(QtCore.QRect(100, 20, 40, 30))
|
|
font = QtGui.QFont()
|
|
font.setFamily("微软雅黑")
|
|
font.setPointSize(13)
|
|
font.setBold(False)
|
|
font.setWeight(50)
|
|
font.setStyleStrategy(QtGui.QFont.PreferAntialias)
|
|
self.lab_duration.setFont(font)
|
|
self.lab_duration.setStyleSheet("QLabel\n"
|
|
"{\n"
|
|
" color:white\n"
|
|
"}")
|
|
self.lab.setObjectName("lab")
|
|
self.vedio_voice = QtWidgets.QPushButton(self.vedio_bar)
|
|
self.vedio_voice.setEnabled(False)
|
|
self.vedio_voice.move(0, 10)
|
|
self.vedio_voice.setMinimumSize(QtCore.QSize(50, 50))
|
|
self.vedio_voice.setMaximumSize(QtCore.QSize(50, 50))
|
|
self.vedio_voice.setText("")
|
|
icon9 = QtGui.QIcon()
|
|
icon9.addPixmap(QtGui.QPixmap("window_png/音量.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
|
self.vedio_voice.setIcon(icon9)
|
|
self.vedio_voice.setIconSize(QtCore.QSize(50, 50))
|
|
self.vedio_voice.setObjectName("vedio_voice")
|
|
|
|
self.retranslateUi(MainWindow)
|
|
QtCore.QMetaObject.connectSlotsByName(MainWindow)
|
|
#设置槽函数
|
|
self.player = QMediaPlayer()
|
|
self.player.setVideoOutput(self.widget)
|
|
#设置时间函数
|
|
self.timer = QTimer()
|
|
self.timer.start(1000)
|
|
self.timer.timeout.connect(lambda: self.onTimerOut())
|
|
self.actionl1.triggered.connect(lambda: self.openfile())
|
|
self.vedio_play.clicked.connect(lambda: self.playpause())
|
|
self.vedio_forward.clicked.connect(lambda: self.uptime())
|
|
self.vedio_back.clicked.connect(lambda: self.downtime())
|
|
self.sld_duration.sliderMoved.connect(lambda: self.changetime())
|
|
self.sld.sliderMoved.connect(lambda: self.changevoice())
|
|
#点击添加文件事件
|
|
def openfile(self):
|
|
media_list = QMediaContent(QFileDialog.getOpenFileUrl()[0])
|
|
self.player.setMedia(media_list)
|
|
self.player.play()
|
|
self.player.pause()
|
|
#点击视频停止事件
|
|
def playpause(self):
|
|
if self.player.state() == 1:
|
|
self.player.pause()
|
|
icon9 = QtGui.QIcon()
|
|
icon9.addPixmap(QtGui.QPixmap("window_png/播放.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
|
self.vedio_play.setIcon(icon9)
|
|
self.vedio_play.setIconSize(QtCore.QSize(50, 50))
|
|
else:
|
|
self.player.play()
|
|
icon9 = QtGui.QIcon()
|
|
icon9.addPixmap(QtGui.QPixmap("window_png/暂停.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
|
|
self.vedio_play.setIcon(icon9)
|
|
self.vedio_play.setIconSize(QtCore.QSize(50, 50))
|
|
#设置时间函数
|
|
def onTimerOut(self):
|
|
alltime = self.player.duration()
|
|
ms = self.player.position()
|
|
minutes = int(ms / 60000)
|
|
seconds = int((ms - minutes * 60000) / 1000)
|
|
minute = int(alltime / 60000)
|
|
sec = int((alltime - minute * 60000) / 1000)
|
|
self.lab_duration.setText('{}:{}/{}:{}'.format(minutes, seconds, minute, sec))
|
|
self.sld_duration.setMaximum(alltime)
|
|
self.sld_duration.setValue(ms)
|
|
self.sld.setValue(self.player.volume())
|
|
self.lab.setText('{}%'.format(self.player.volume()))
|
|
#设置快进事件
|
|
def uptime(self):
|
|
num = self.player.position() + int(self.player.duration() / 20)
|
|
self.player.setPosition(num)
|
|
#设置快退事件
|
|
def downtime(self):
|
|
num = self.player.position() - int(self.player.duration() / 20)
|
|
self.player.setPosition(num)
|
|
#设置鼠标改变进度条事件
|
|
def changetime(self):
|
|
self.timer.stop()
|
|
num = self.sld_duration.value()
|
|
self.player.setPosition(num)
|
|
self.timer.start()
|
|
#设置鼠标改变声音事件
|
|
def changevoice(self):
|
|
num = self.sld.value()
|
|
self.player.setVolume(num)
|
|
|
|
def retranslateUi(self, MainWindow):
|
|
_translate = QtCore.QCoreApplication.translate
|
|
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
|
|
self.lab_duration.setText(_translate("MainWindow", "----/----"))
|
|
self.toolBar.setWindowTitle(_translate("MainWindow", "toolBar"))
|
|
self.actionl1.setText(_translate("MainWindow", "添加文件"))
|
|
self.actionl1_2.setText(_translate("MainWindow", "开始分析"))
|
|
|