예제 #1
0
    def __init__(self, parent=None):
        super(MainHome, self).__init__(parent)
        self.resize(1280, 720)
        self.setWindowTitle("智能家居系统")

        window_pale = QPalette()
        tu = QPixmap("./images/bgall.png").scaled(self.width(), self.height())
        window_pale.setBrush(self.backgroundRole(), QBrush(tu))  # 设置背景图片
        self.setPalette(window_pale)

        player = QMediaPlayer(self)
        vw = QVideoWidget(self)
        vw.setGeometry(10, 50, 320, 240)
        player.setVideoOutput(vw)
        file = QUrl.fromLocalFile(
            "images/1280x720.mp4")  #QFileDialog.getOpenFileUrl()[0]

        player.setMedia(QMediaContent(file))  # 选取视频文件
        player.play()  # 播放视频

        self.kt = QPushButton(self)
        self.kt.setGeometry(10, 550, 200, 30)
        self.kt.setStyleSheet(
            "QPushButton{border-image: url(images/ketingbt.png)}")

        self.zw = QPushButton(self)
        self.zw.setGeometry(400, 550, 200, 30)
        self.zw.setStyleSheet(
            "QPushButton{border-image: url(images/zhuwobt.png)}")

        self.flg = QLabel(self)
        self.flg.setGeometry(700, 550, 200, 30)
        self.flg.setText("只是测")
예제 #2
0
class MainWindow(QWidget):
  def __init__(self, rect, controller):
    QWidget.__init__(self)

    self.controller = controller

    self.setGeometry(rect)
    self.setWindowTitle("Reframomat")

    self.welcomeMsg = QLabel(self)
    self.welcomeMsg.setText("Willkommen beim Reframomat!\nDrücke den Buzzer, um loszulegen!")
    self.welcomeMsg.setAlignment(Qt.AlignCenter)
    self.welcomeMsg.setGeometry(self.rect())

    self.videoWidget = QVideoWidget(self)
    self.videoWidget.setGeometry(self.rect())
    self.videoWidget.hide()

  def keyPressEvent(self, event):
    if type(event) == QKeyEvent:
      if event.key() == Qt.Key_Escape:
        QApplication.quit()
      elif event.key() == Qt.Key_S:
        self.controller.skip()
      else:
        self.controller.onBuzzerPress()
      event.accept()
    else:
      event.ignore()
예제 #3
0
class Ui_WelcomeWindow(object):
    def setupUi(self, WelcomeWindow):
        WelcomeWindow.setObjectName("WelcomeWindow")
        WelcomeWindow.resize(840, 600)
        self.centralwidget = QtWidgets.QWidget(WelcomeWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.takeButton = QtWidgets.QPushButton(self.centralwidget)
        self.takeButton.setGeometry(QtCore.QRect(120, 180, 211, 30))
        self.takeButton.setObjectName("takeButton")
        self.welcomeLabel = QtWidgets.QLabel(self.centralwidget)
        self.welcomeLabel.setGeometry(QtCore.QRect(60, 70, 401, 61))
        self.welcomeLabel.setObjectName("welcomeLabel")
        self.welcomeVideo = QVideoWidget(self.centralwidget)
        self.welcomeVideo.setGeometry(QtCore.QRect(500, 180, 261, 231))
        self.welcomeVideo.setObjectName("welcomeVideo")
        WelcomeWindow.setCentralWidget(self.centralwidget)
        self.statusbar = QtWidgets.QStatusBar(WelcomeWindow)
        self.statusbar.setObjectName("statusbar")
        WelcomeWindow.setStatusBar(self.statusbar)

        self.retranslateUi(WelcomeWindow)
        QtCore.QMetaObject.connectSlotsByName(WelcomeWindow)

    def retranslateUi(self, WelcomeWindow):
        _translate = QtCore.QCoreApplication.translate
        WelcomeWindow.setWindowTitle(
            _translate("WelcomeWindow", "Bienvenue  !"))
        self.takeButton.setText(
            _translate("WelcomeWindow", "Prendre une photo"))
        self.welcomeLabel.setText(
            _translate("WelcomeWindow",
                       "Bienvenue dans le PhotoBooth de 42nd Street !!!"))
예제 #4
0
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.widget = QVideoWidget(self.centralwidget)
        self.widget.setGeometry(QtCore.QRect(130, 110, 641, 371))
        self.widget.setStyleSheet("background-color: rgb(222, 222, 222);")
        self.widget.setObjectName("widget")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 30))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
예제 #5
0
    def setupUi(self, window):
        self.window = window
        self.window.setFixedSize(784, 442)
        #self.window.setFixedSize(884,542)
        self.window.setWindowFlags(Qt.FramelessWindowHint
                                   | Qt.WindowStaysOnTopHint
                                   | Qt.WA_TranslucentBackground)

        self.mediaPlayer = QMediaPlayer(None, QMediaPlayer.VideoSurface)

        widget = QWidget(self.window)

        widget.setObjectName('Custom_Widget')
        widget.setStyleSheet("""
        #Custom_Widget {
            background: #002025;
            border-radius: 20px;
            opacity: 100;
            border: 2px solid #ff2025;
        }
        """)

        videoWidget = QVideoWidget(widget)
        videoWidget.setGeometry(QRect(0, 0, 784, 442))

        self.mediaPlayer.setVideoOutput(videoWidget)
        self.mediaPlayer.setMedia(
            QMediaContent(QUrl.fromLocalFile(os.getcwd() + "\\logo-anim.avi")))
        self.mediaPlayer.play()
        self.mediaPlayer.stateChanged.connect(
            lambda x: self.closeSignal.emit(x))
        #self.mediaPlayer.stateChanged.connect(lambda x: sys.exit())

        self.window.setCentralWidget(widget)
예제 #6
0
    def initUI(self):
        self.resize(1920, 1200)

        self.main_widget = QWidget()  # 创建窗口主部件
        self.main_widget.setObjectName("main_widget")
        self.main_layout = QGridLayout()  # 创建主部件的网格布局
        self.main_widget.setLayout(self.main_layout)  #
        self.setCentralWidget(self.main_widget)

        self.main_widget.setStyleSheet('''
         #main_widget{

        border-image:url(./Ui_images/blackB.jpg);

        border-radius:30px
        }

        }
        ''')

        self.gif = QMovie("./Ui_images/2.gif")
        self.scorelabel = QLabel(self.main_widget)
        self.scorelabel.setGeometry(800, 700, 140, 70)

        self.scorelabel.setMovie(self.gif)
        self.gif.start()
        self.videoframe = QLabel(self.main_widget)
        self.videoframe.setGeometry(1000, 200, 800, 448)
        self.scoreframe = QLabel(self.main_widget)
        self.scoreframe.setGeometry(965, 712, 150, 50)

        self.scoreframe.setAlignment(Qt.AlignVCenter)

        self.th = Thread(self.video_csv)
        self.th.changePixmap.connect(self.setImage)
        self.th.score.connect(self.setText)
        #self.th.finished.connect(self.save_ranking)
        self.th.start()
        time.sleep(2)

        vw1 = QVideoWidget(self.main_widget)
        vw1.setGeometry(100, 200, 800, 448)

        player = QMediaPlayer(self.main_widget)
        player.setVideoOutput(vw1)
        player.setMedia(QMediaContent(QUrl("file:///" + self.video_path)))
        player.play()

        # self.setWindowOpacity(0.9)  # 设置窗口透明度
        # self.setAttribute(Qt.WA_TranslucentBackground)  # 设置窗口背景透明

        #self.setWindowFlag(Qt.FramelessWindowHint)  # 隐藏边框

        self.show()
예제 #7
0
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.frame = QtWidgets.QFrame(self.centralwidget)
        self.frame.setGeometry(QtCore.QRect(60, 10, 661, 531))
        self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame.setObjectName("frame")
        self.start_toolButton = QtWidgets.QToolButton(self.frame)
        self.start_toolButton.setGeometry(QtCore.QRect(50, 110, 161, 51))
        self.start_toolButton.setObjectName("start_toolButton")
        self.stop_toolButton = QtWidgets.QToolButton(self.frame)
        self.stop_toolButton.setGeometry(QtCore.QRect(430, 110, 161, 51))
        self.stop_toolButton.setObjectName("stop_toolButton")
        self.label = QtWidgets.QLabel(self.frame)
        self.label.setGeometry(QtCore.QRect(110, 40, 101, 41))
        self.label.setScaledContents(False)
        self.label.setWordWrap(False)
        self.label.setOpenExternalLinks(False)
        self.label.setObjectName("label")
        self.image_line = QtWidgets.QLineEdit(self.frame)
        self.image_line.setGeometry(QtCore.QRect(230, 50, 61, 21))
        self.image_line.setText("")
        self.image_line.setObjectName("image_line")
        self.color_widget = QtWidgets.QWidget(self.frame)
        self.color_widget.setGeometry(QtCore.QRect(30, 220, 261, 281))
        self.color_widget.setObjectName("color_widget")
        self.color_widget = QVideoWidget(self.color_widget)
        self.depth_widget = QtWidgets.QWidget(self.frame)
        self.color_widget.setGeometry(QtCore.QRect(30, 220, 261, 281))
        self.depth_widget.setGeometry(QtCore.QRect(380, 220, 261, 281))
        self.depth_widget.setObjectName("depth_widget")
        MainWindow.setCentralWidget(self.centralwidget)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        # self.start_toolButton.clicked.connect(MainWindow.close)
        # self.stop_toolButton.clicked.connect(MainWindow.close)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "kinect采集程序"))
        self.start_toolButton.setText(_translate("MainWindow", "开始采集"))
        self.stop_toolButton.setText(_translate("MainWindow", "保存视频"))
        self.label.setText(_translate("MainWindow", "采集图像数量:"))
예제 #8
0
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.setWindowModality(QtCore.Qt.NonModal)
        MainWindow.resize(999, 749)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            MainWindow.sizePolicy().hasHeightForWidth())
        MainWindow.setSizePolicy(sizePolicy)
        MainWindow.setStyleSheet("")
        MainWindow.setAnimated(True)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.centralwidget.sizePolicy().hasHeightForWidth())
        self.centralwidget.setSizePolicy(sizePolicy)
        self.centralwidget.setObjectName("centralwidget")
        self.first_mediaplayer = QtWidgets.QFrame(self.centralwidget)
        self.first_mediaplayer.setGeometry(QtCore.QRect(540, 0, 461, 301))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.first_mediaplayer.sizePolicy().hasHeightForWidth())
        self.first_mediaplayer.setSizePolicy(sizePolicy)
        self.first_mediaplayer.setStyleSheet("")
        self.first_mediaplayer.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.first_mediaplayer.setFrameShadow(QtWidgets.QFrame.Raised)
        self.first_mediaplayer.setObjectName("first_mediaplayer")
        self.time_slider = QtWidgets.QSlider(self.first_mediaplayer)
        self.time_slider.setGeometry(QtCore.QRect(58, 240, 311, 31))
        self.time_slider.setOrientation(QtCore.Qt.Horizontal)
        self.time_slider.setObjectName("time_slider")
        self.current_time_label = QtWidgets.QLabel(self.first_mediaplayer)
        self.current_time_label.setGeometry(QtCore.QRect(20, 248, 60, 16))
        self.current_time_label.setObjectName("current_time_label")
        self.time_left_label = QtWidgets.QLabel(self.first_mediaplayer)
        self.time_left_label.setGeometry(QtCore.QRect(380, 248, 60, 16))
        self.time_left_label.setObjectName("time_left_label")
        self.video_player = QVideoWidget(self.first_mediaplayer)
        self.video_player.setEnabled(True)
        self.video_player.setGeometry(QtCore.QRect(15, 19, 421, 211))
        self.video_player.setAutoFillBackground(False)
        self.video_player.setStyleSheet(
            "background-color: rgb(255, 255, 255);")
        self.video_player.setObjectName("video_player")
        self.volume_control = QtWidgets.QSlider(self.first_mediaplayer)
        self.volume_control.setGeometry(QtCore.QRect(340, 262, 101, 22))
        self.volume_control.setOrientation(QtCore.Qt.Horizontal)
        self.volume_control.setObjectName("volume_control")
        self.pauseButton = QtWidgets.QPushButton(self.first_mediaplayer)
        self.pauseButton.setGeometry(QtCore.QRect(150, 260, 31, 31))
        self.pauseButton.setAutoFillBackground(False)
        self.pauseButton.setStyleSheet(
            "background-color: rgba(255, 255, 255, 0);")
        self.pauseButton.setText("")
        icon = QtGui.QIcon()
        icon.addPixmap(
            QtGui.QPixmap("resources/buttons/media_buttons/pause1.png"),
            QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.pauseButton.setIcon(icon)
        self.pauseButton.setIconSize(QtCore.QSize(31, 31))
        self.pauseButton.setObjectName("pauseButton")
        self.playButton = QtWidgets.QPushButton(self.first_mediaplayer)
        self.playButton.setGeometry(QtCore.QRect(190, 260, 31, 31))
        self.playButton.setAutoFillBackground(False)
        self.playButton.setStyleSheet(
            "background-color: rgba(255, 255, 255, 0);")
        self.playButton.setText("")
        icon1 = QtGui.QIcon()
        icon1.addPixmap(
            QtGui.QPixmap("resources/buttons/media_buttons/play1.png"),
            QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.playButton.setIcon(icon1)
        self.playButton.setIconSize(QtCore.QSize(31, 31))
        self.playButton.setObjectName("playButton")
        self.nextButton = QtWidgets.QPushButton(self.first_mediaplayer)
        self.nextButton.setGeometry(QtCore.QRect(229, 260, 31, 31))
        self.nextButton.setAutoFillBackground(False)
        self.nextButton.setStyleSheet(
            "background-color: rgba(255, 255, 255, 0);")
        self.nextButton.setText("")
        icon2 = QtGui.QIcon()
        icon2.addPixmap(
            QtGui.QPixmap("resources/buttons/media_buttons/next_vid1.png"),
            QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.nextButton.setIcon(icon2)
        self.nextButton.setIconSize(QtCore.QSize(31, 31))
        self.nextButton.setObjectName("nextButton")
        self.stopButton = QtWidgets.QPushButton(self.first_mediaplayer)
        self.stopButton.setGeometry(QtCore.QRect(110, 260, 31, 31))
        self.stopButton.setAutoFillBackground(False)
        self.stopButton.setStyleSheet(
            "background-color: rgba(255, 255, 255, 0);")
        self.stopButton.setText("")
        icon3 = QtGui.QIcon()
        icon3.addPixmap(
            QtGui.QPixmap("resources/buttons/media_buttons/stop1.png"),
            QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.stopButton.setIcon(icon3)
        self.stopButton.setIconSize(QtCore.QSize(31, 31))
        self.stopButton.setObjectName("stopButton")
        self.muteButton = QtWidgets.QPushButton(self.first_mediaplayer)
        self.muteButton.setGeometry(QtCore.QRect(278, 262, 23, 23))
        self.muteButton.setAutoFillBackground(False)
        self.muteButton.setStyleSheet(
            "background-color: rgba(255, 255, 255, 0);")
        self.muteButton.setText("")
        icon4 = QtGui.QIcon()
        icon4.addPixmap(
            QtGui.QPixmap("resources/buttons/media_buttons/mute1.png"),
            QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.muteButton.setIcon(icon4)
        self.muteButton.setIconSize(QtCore.QSize(31, 31))
        self.muteButton.setObjectName("muteButton")
        self.volumeButton = QtWidgets.QPushButton(self.first_mediaplayer)
        self.volumeButton.setGeometry(QtCore.QRect(310, 261, 23, 23))
        self.volumeButton.setAutoFillBackground(False)
        self.volumeButton.setStyleSheet(
            "background-color: rgba(255, 255, 255, 0);")
        self.volumeButton.setText("")
        icon5 = QtGui.QIcon()
        icon5.addPixmap(
            QtGui.QPixmap("resources/buttons/media_buttons/volume1.png"),
            QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.volumeButton.setIcon(icon5)
        self.volumeButton.setIconSize(QtCore.QSize(31, 31))
        self.volumeButton.setObjectName("volumeButton")
        self.mini_viewer = QtWidgets.QFrame(self.centralwidget)
        self.mini_viewer.setGeometry(QtCore.QRect(10, 300, 991, 411))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.mini_viewer.sizePolicy().hasHeightForWidth())
        self.mini_viewer.setSizePolicy(sizePolicy)
        self.mini_viewer.setStyleSheet("")
        self.mini_viewer.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.mini_viewer.setFrameShadow(QtWidgets.QFrame.Raised)
        self.mini_viewer.setObjectName("mini_viewer")
        self.timeline_1 = QtWidgets.QGraphicsView(self.mini_viewer)
        self.timeline_1.setGeometry(QtCore.QRect(50, 80, 891, 21))
        self.timeline_1.setStyleSheet("")
        self.timeline_1.setObjectName("timeline_1")
        self.mini_view_1 = QtWidgets.QGraphicsView(self.mini_viewer)
        self.mini_view_1.setGeometry(QtCore.QRect(50, 110, 891, 81))
        self.mini_view_1.setStyleSheet("")
        self.mini_view_1.setObjectName("mini_view_1")
        self.timeline_2 = QtWidgets.QGraphicsView(self.mini_viewer)
        self.timeline_2.setGeometry(QtCore.QRect(50, 210, 891, 21))
        self.timeline_2.setStyleSheet("")
        self.timeline_2.setObjectName("timeline_2")
        self.mini_view_2 = QtWidgets.QGraphicsView(self.mini_viewer)
        self.mini_view_2.setGeometry(QtCore.QRect(50, 320, 891, 81))
        self.mini_view_2.setStyleSheet("")
        self.mini_view_2.setObjectName("mini_view_2")
        self.push_extract_1 = QtWidgets.QPushButton(self.mini_viewer)
        self.push_extract_1.setGeometry(QtCore.QRect(40, 40, 141, 31))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.push_extract_1.sizePolicy().hasHeightForWidth())
        self.push_extract_1.setSizePolicy(sizePolicy)
        self.push_extract_1.setStyleSheet("")
        self.push_extract_1.setObjectName("push_extract_1")
        self.timeline_3 = QtWidgets.QGraphicsView(self.mini_viewer)
        self.timeline_3.setGeometry(QtCore.QRect(50, 250, 891, 21))
        self.timeline_3.setStyleSheet("")
        self.timeline_3.setObjectName("timeline_3")
        self.timeline_4 = QtWidgets.QGraphicsView(self.mini_viewer)
        self.timeline_4.setEnabled(False)
        self.timeline_4.setGeometry(QtCore.QRect(50, 290, 891, 21))
        self.timeline_4.setStyleSheet("")
        self.timeline_4.setObjectName("timeline_4")
        self.tabWidget = QtWidgets.QTabWidget(self.centralwidget)
        self.tabWidget.setEnabled(True)
        self.tabWidget.setGeometry(QtCore.QRect(20, 0, 511, 301))
        self.tabWidget.setObjectName("tabWidget")
        self.tab1 = QtWidgets.QWidget()
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.tab1.sizePolicy().hasHeightForWidth())
        self.tab1.setSizePolicy(sizePolicy)
        self.tab1.setObjectName("tab1")
        self.playlistView = QtWidgets.QListView(self.tab1)
        self.playlistView.setEnabled(True)
        self.playlistView.setGeometry(QtCore.QRect(0, 0, 511, 271))
        self.playlistView.setObjectName("playlistView")
        self.tabWidget.addTab(self.tab1, "")
        self.tab_2 = QtWidgets.QWidget()
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.tab_2.sizePolicy().hasHeightForWidth())
        self.tab_2.setSizePolicy(sizePolicy)
        self.tab_2.setObjectName("tab_2")
        self.treeView2 = QtWidgets.QTreeView(self.tab_2)
        self.treeView2.setGeometry(QtCore.QRect(0, 0, 511, 271))
        self.treeView2.setAcceptDrops(True)
        self.treeView2.setObjectName("treeView2")
        self.tabWidget.addTab(self.tab_2, "")
        self.tab = QtWidgets.QWidget()
        self.tab.setObjectName("tab")
        self.treeView2_2 = QtWidgets.QTreeView(self.tab)
        self.treeView2_2.setGeometry(QtCore.QRect(0, 0, 511, 271))
        self.treeView2_2.setAcceptDrops(True)
        self.treeView2_2.setObjectName("treeView2_2")
        self.pushButton = QtWidgets.QPushButton(self.tab)
        self.pushButton.setEnabled(False)
        self.pushButton.setGeometry(QtCore.QRect(80, 10, 112, 32))
        self.pushButton.setObjectName("pushButton")
        self.tabWidget.addTab(self.tab, "")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menuBar = QtWidgets.QMenuBar(MainWindow)
        self.menuBar.setGeometry(QtCore.QRect(0, 0, 999, 22))
        self.menuBar.setToolTipDuration(0)
        self.menuBar.setObjectName("menuBar")
        self.menuHelp = QtWidgets.QMenu(self.menuBar)
        self.menuHelp.setObjectName("menuHelp")
        self.menuEdit = QtWidgets.QMenu(self.menuBar)
        self.menuEdit.setObjectName("menuEdit")
        self.menuView = QtWidgets.QMenu(self.menuBar)
        self.menuView.setObjectName("menuView")
        self.menuFiles = QtWidgets.QMenu(self.menuBar)
        self.menuFiles.setObjectName("menuFiles")
        MainWindow.setMenuBar(self.menuBar)
        self.actionLicense = QtWidgets.QAction(MainWindow)
        self.actionLicense.setObjectName("actionLicense")
        self.actionAdd_Files = QtWidgets.QAction(MainWindow)
        self.actionAdd_Files.setCheckable(True)
        self.actionAdd_Files.setChecked(False)
        self.actionAdd_Files.setObjectName("actionAdd_Files")
        self.actionAbout = QtWidgets.QAction(MainWindow)
        self.actionAbout.setObjectName("actionAbout")
        self.menuHelp.addAction(self.actionLicense)
        self.menuFiles.addAction(self.actionAdd_Files)
        self.menuBar.addAction(self.menuFiles.menuAction())
        self.menuBar.addAction(self.menuView.menuAction())
        self.menuBar.addAction(self.menuEdit.menuAction())
        self.menuBar.addAction(self.menuHelp.menuAction())

        self.retranslateUi(MainWindow)
        self.tabWidget.setCurrentIndex(0)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.current_time_label.setText(_translate("MainWindow", "0:00"))
        self.time_left_label.setText(_translate("MainWindow", "0:00"))
        self.push_extract_1.setText(_translate("MainWindow", "Extract Videos"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab1),
                                  _translate("MainWindow", "Original Videos"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2),
                                  _translate("MainWindow", "Extracted Videos"))
        self.pushButton.setText(_translate("MainWindow", "PushButton"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab),
                                  _translate("MainWindow", "Model"))
        self.menuHelp.setTitle(_translate("MainWindow", "Help"))
        self.menuEdit.setTitle(_translate("MainWindow", "Edit"))
        self.menuView.setTitle(_translate("MainWindow", "View"))
        self.menuFiles.setTitle(_translate("MainWindow", "Files"))
        self.actionLicense.setText(_translate("MainWindow", "License"))
        self.actionAdd_Files.setText(_translate("MainWindow", "Add Files"))
        self.actionAbout.setText(_translate("MainWindow", "About"))
예제 #9
0
class MainWindowView(object):
    def __init__(self, main_window):
        main_window.setObjectName("main_window")
        main_window.resize(1680, 1050)
        main_window.setMinimumSize(QtCore.QSize(1680, 1050))
        self.centralwidget = QtWidgets.QWidget(main_window)
        self.centralwidget.setObjectName("central_widget")

        self.video_player_widget = QVideoWidget(self.centralwidget)
        self.video_player_widget.setGeometry(QtCore.QRect(20, 40, 671, 531))
        self.video_player_widget.setObjectName("video_player_widget")

        self.verticalLayoutWidget = QtWidgets.QWidget(self.centralwidget)
        self.verticalLayoutWidget.setGeometry(QtCore.QRect(20, 580, 671, 111))
        self.verticalLayoutWidget.setObjectName("__base_layout")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout.setObjectName("__menu_buttons_layout")
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")

        self.time_into_video_counter = QtWidgets.QLCDNumber(
            self.verticalLayoutWidget)
        self.time_into_video_counter.setObjectName("time_into_video_counter")

        self.horizontalLayout_2.addWidget(self.time_into_video_counter)

        self.video_position_slider = QtWidgets.QSlider(
            self.verticalLayoutWidget)
        self.video_position_slider.setOrientation(QtCore.Qt.Horizontal)
        self.video_position_slider.setObjectName("video_position_slider")

        self.horizontalLayout_2.addWidget(self.video_position_slider)

        self.time_left_counter = QtWidgets.QLCDNumber(
            self.verticalLayoutWidget)
        self.time_left_counter.setObjectName("time_left_counter")

        self.horizontalLayout_2.addWidget(self.time_left_counter)
        self.verticalLayout.addLayout(self.horizontalLayout_2)
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        spacerItem = QtWidgets.QSpacerItem(40, 20,
                                           QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem)

        self.skip_to_start_of_video_button = QtWidgets.QPushButton(
            self.verticalLayoutWidget)
        self.skip_to_start_of_video_button.setObjectName(
            "skip_to_start_of_video_button")

        self.horizontalLayout.addWidget(self.skip_to_start_of_video_button)
        spacerItem1 = QtWidgets.QSpacerItem(40, 20,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem1)

        self.play_video_button = QtWidgets.QPushButton(
            self.verticalLayoutWidget)
        self.play_video_button.setObjectName("play_video_button")

        self.horizontalLayout.addWidget(self.play_video_button)
        spacerItem2 = QtWidgets.QSpacerItem(40, 20,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem2)

        self.skip_to_end_of_video_button = QtWidgets.QPushButton(
            self.verticalLayoutWidget)
        self.skip_to_end_of_video_button.setObjectName(
            "skip_to_end_of_video_button")

        self.horizontalLayout.addWidget(self.skip_to_end_of_video_button)
        spacerItem3 = QtWidgets.QSpacerItem(40, 20,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem3)
        self.verticalLayout.addLayout(self.horizontalLayout)
        self.detection_vertical_layout = QtWidgets.QWidget(self.centralwidget)
        self.detection_vertical_layout.setGeometry(
            QtCore.QRect(800, 40, 721, 861))
        self.detection_vertical_layout.setObjectName(
            "detection_vertical_layout")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(
            self.detection_vertical_layout)
        self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")

        self.detection_list_scrollable_area = QScrollArea()
        self.horizontalLayout_3.addWidget(self.detection_list_scrollable_area)
        self.detection_list_scrollable_area.setWidgetResizable(True)

        scrollContent = QWidget(self.detection_list_scrollable_area)
        self.detection_list_scrollable_area.setWidget(scrollContent)
        self.verticalLayout_2.addLayout(self.horizontalLayout_3)
        self.video_player_label = QtWidgets.QLabel(self.centralwidget)
        self.video_player_label.setGeometry(QtCore.QRect(250, 0, 201, 31))
        font = QtGui.QFont()
        font.setPointSize(18)
        self.video_player_label.setFont(font)
        self.video_player_label.setAlignment(QtCore.Qt.AlignCenter)
        self.video_player_label.setObjectName("video_player_label")
        self.detection_label = QtWidgets.QLabel(self.centralwidget)
        self.detection_label.setGeometry(QtCore.QRect(1060, 0, 201, 31))
        font = QtGui.QFont()
        font.setPointSize(18)
        self.detection_label.setFont(font)
        self.detection_label.setAlignment(QtCore.Qt.AlignCenter)
        self.detection_label.setObjectName("detection_label")
        main_window.setCentralWidget(self.centralwidget)
        self.menu_bar = QtWidgets.QMenuBar()
        self.menu_bar.setGeometry(QtCore.QRect(0, 0, 1680, 18))
        self.menu_bar.setObjectName("menu_bar")

        main_window.setMenuBar(self.menu_bar)

        self.status_bar = QtWidgets.QStatusBar(main_window)
        self.status_bar.setObjectName("status_bar")
        main_window.setStatusBar(self.status_bar)

        self.mediaPlayer = QMediaPlayer(None, QMediaPlayer.VideoSurface)

        self.errorLabel = QLabel()
        self.errorLabel.setSizePolicy(QSizePolicy.Preferred,
                                      QSizePolicy.Maximum)
        self.set_text_and_icons(main_window)

    def set_text_and_icons(self, main_window):
        _translate = QtCore.QCoreApplication.translate
        main_window.setWindowTitle(_translate("main_window", "main_window"))
        icon_object = QtWidgets.QWidget(main_window).style()

        self.skip_to_start_of_video_button.setIcon(
            icon_object.standardIcon(QStyle.SP_MediaSkipBackward))
        self.play_video_button.setIcon(
            icon_object.standardIcon(QStyle.SP_MediaPlay))
        self.skip_to_end_of_video_button.setIcon(
            icon_object.standardIcon(QStyle.SP_MediaSkipForward))

        self.video_player_label.setText(
            _translate("main_window", "Video Player"))
        self.detection_label.setText(_translate("main_window", "Detections"))

    def get_video_widget(self):
        return self.video_player_widget

    def get_media_player(self):
        return self.mediaPlayer

    def get_play_button(self):
        return self.play_video_button

    def get_skip_backward_button(self):
        return self.skip_to_start_of_video_button

    def get_skip_forward_button(self):
        return self.skip_to_end_of_video_button

    def get_position_slider(self):
        return self.video_position_slider

    def get_error_label(self):
        return self.errorLabel

    def get_time_left_counter(self):
        return self.time_left_counter

    def get_time_into_video_counter(self):
        return self.time_into_video_counter

    def get_menu_bar(self):
        return self.menu_bar

    def get_detection_event_scroll_area(self):
        return self.detection_list_scrollable_area

    def get_detection_vertical_layout(self):
        return self.detection_vertical_layout
예제 #10
0
class Example(QMainWindow):

    
    def __init__(self):
        super().__init__()
        
        self.initUI()
        
        
    def initUI(self):
        self.startTimeValue=0
        self.endTimeValue=0
        self.fpsValue=1
        # 视频预览
        self.player = QMediaPlayer(self)
        self.vw=  QVideoWidget(self)                       # 定义视频显示的widget
        self.vw.setGeometry(20,20,600,600)
        self.vw.show()
        self.player.setVideoOutput(self.vw)                 # 视频播放输出的widget,就是上面定义的
        self.player.positionChanged.connect(self.changeSlide)

        # 播放按钮
        self.btn = QPushButton('play', self)
        self.btn.move(20, 620)
        self.btn.clicked.connect(self.player.play)
        # 暂停按钮
        self.btn = QPushButton('pause', self)
        self.btn.move(120, 620)
        self.btn.clicked.connect(self.player.pause)
        # 停止按钮
        self.btn = QPushButton('stop', self)
        self.btn.move(220, 620)
        self.btn.clicked.connect(self.player.stop)
        # 播放时长
        self.videoPlayDurationLabel = QLabel(self)
        self.videoPlayDurationLabel.setGeometry(320, 620, 100, 40)

        # 开始转换准备
        # 分辨率
        self.startLabel = QLabel(self)
        self.startLabel.setGeometry(640, 10, 260, 40)
        self.startLabel.setText('分辨率:默认尺寸(暂不支持变更)')
        # 开始时间
        self.startLabel = QLabel(self)
        self.startLabel.setGeometry(640, 40, 50, 40)
        self.startLabel.setText('start:')
        # 开始时间值
        startTimeValueLE = QLineEdit(self)
        startTimeValueLE.move(680, 40)
        startTimeValueLE.textChanged[str].connect(self.onChangedOfStartTime)
        startTimeValueLE.setText(str(self.startTimeValue))

        # 结束时间
        self.startLabel = QLabel(self)
        self.startLabel.setGeometry(640, 80, 50, 40)
        self.startLabel.setText('end:')
        self.endTimeValueLE = QLineEdit(self)
        self.endTimeValueLE.move(680, 80)
        self.endTimeValueLE.textChanged[str].connect(self.onChangedOfEndTime)
        self.endTimeValueLE.setText(str(self.endTimeValue))
        
        # FPS
        self.fpsLabel = QLabel(self)
        self.fpsLabel.setGeometry(640, 120, 50, 40)
        self.fpsLabel.setText('fps:')
        fpsValueLE = QLineEdit(self)
        fpsValueLE.move(680, 120)
        fpsValueLE.textChanged[str].connect(self.onChangedOfFPS)
        fpsValueLE.setText(str(self.fpsValue))

        # 转换
        self.btn = QPushButton('转换gif', self)
        self.btn.move(640, 160)
        self.btn.clicked.connect(self.transformToGif)

        # gif的文件名称
        self.gifFileNameLable=QLabel(self)
        self.gifFileNameLable.setGeometry(640, 190, 200, 60)
        # self.gifFileNameLable.setText('xxxx.gif')
        # Gif的文件大小
        self.gifSizeLable=QLabel(self)
        self.gifSizeLable.move(640,230)
        # self.gifSizeLable.setText('0KB')


        # 导出

        #预览

        # self.pbar = QProgressBar(self)
        # self.pbar.setGeometry(30, 100, 200, 25)
 
        openFile = QAction(QIcon('open.png'), 'Open', self)
        openFile.setShortcut('Ctrl+O')
        openFile.setStatusTip('Open new File')
        openFile.triggered.connect(self.showDialog)

        menubar = self.menuBar()
        fileMenu = menubar.addMenu('&File')
        fileMenu.addAction(openFile) 

        self.label = QLabel(self)
        self.label.setGeometry(800, 20, 400, 500)
        self.label.setScaledContents(True)
       
        self.setGeometry(0, 0, 1300, 900)
        self.setWindowTitle('视频转Gif动图')    
        self.show()
    def changeSlide(self, position):
        self.vidoeLength = self.player.duration() + 0.1
        print(self.vidoeLength)

        # self.sld_video.setValue(round((position / self.vidoeLength) * 100))
        self.videoPlayDurationLabel.setText(str(round((position / self.vidoeLength) * 100, 2)) + '%')
        if((self.endTimeValue)==0):
            self.endTimeValueLE.setText(str(int(self.player.duration()/1000)))

    def transformToGif(self):
        print('transformToGif--filepath='+fileList[0].path())
        cache = mpe.VideoFileClip(fileList[0].path()).subclip(self.startTimeValue,self.endTimeValue)
        date=time.strftime('%Y-%m-%d_%H-%M-%S')
        resultGifFilePath='./gif/'+date+'.gif'# 使用日期时间作为gif文件名称
        # TODO 转换进度条对话框 展示 
        cache.write_gif(resultGifFilePath,fps=float(self.fpsValue))
        self.gif = QMovie(resultGifFilePath)
        
        self.label.setMovie(self.gif)
        self.gif.start()

        self.gifFileNameLable.setText(date+'.gif')
        doubleSize=os.path.getsize(resultGifFilePath)/1000
        self.gifSizeLable.setText(str(int(doubleSize))+'KB')

        
    def onChangedOfFPS(self, text):
        self.fpsValue=text
        print('fps='+self.fpsValue)
        
    def onChangedOfStartTime(self, text):
        self.startTimeValue=text
        print('起点 start='+self.startTimeValue)

    def onChangedOfEndTime(self, text):
        if(''==text):
            self.endTimeValue=-1
        else :
            self.endTimeValue=int(text)
        print('end='+ str(self.endTimeValue))

    def timerEvent(self, e):
 
        if self.step >= 100:
            self.timer.stop()
            self.btn.setText('Finished')
            return
 
        self.step = self.step + 1
        self.pbar.setValue(self.step)
 
    def doAction(self):
 
        if self.timer.isActive():
            self.timer.stop()
            self.btn.setText('Start')
        else:
            self.timer.start(100, self)
            self.btn.setText('Stop')

    # def changeValue(self, value):
    #     if value == 0:
    #         self.label.setPixmap(QPixmap('./gif/2022-03-21-17.19.44.gif'))
    #     elif value > 0 and value <= 30:
    #         self.label.setPixmap(QPixmap('./img/1.jpg'))
    #     elif value > 30 and value < 80:
    #         self.label.setPixmap(QPixmap('med.ico'))
    #     else:
    #         self.label.setPixmap(QPixmap('max.ico'))
    def showDialog(self):
        # TODO 视频文件大小
        # TODO 播放时长
        # TODO 视频播放总时长显示
        
        global fileList
        fileList = QFileDialog.getOpenFileUrl()
        print(fileList[0])
        self.player.setMedia(QMediaContent(fileList[0]))  # 选取视频文件
        self.player.play() 

    def closeEvent(self, event):
        reply = QMessageBox.question(self, 'Message',
            "Are you sure to quit?", QMessageBox.Yes | 
            QMessageBox.No, QMessageBox.No)

        if reply == QMessageBox.Yes:
            event.accept()
        else:
            event.ignore() 
예제 #11
0
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1920, 1080)
        MainWindow.setContentsMargins(0, 0, 0, 0)
        MainWindow.showFullScreen()
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")

        self.photo = QtWidgets.QLabel(self.centralwidget)
        self.photo.setGeometry(QtCore.QRect(0, 0, 1920, 1080))
        self.photo.setText("")
        self.photo.setContentsMargins(0, 0, 0, 0)
        self.photo.setPixmap(QtGui.QPixmap("image/start.jpg"))
        self.photo.setContentsMargins(0, 0, 0, 0)
        self.photo.setScaledContents(True)
        self.photo.setObjectName("photo")

        self.mediaPlayer = QMediaPlayer(None, QMediaPlayer.VideoSurface)
        self.videowidget = QVideoWidget(self.centralwidget)
        self.videowidget.setGeometry(QtCore.QRect(0, 0, 0, 0))

        MainWindow.setCentralWidget(self.centralwidget)

        MainWindow.setContentsMargins(0, 0, 0, 0)
        self.retranslateUi(MainWindow)

    # QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))

    def imageSetting(self, imageName):
        self.resetSetting()
        self.photo.setGeometry(QtCore.QRect(0, 0, 1920, 1080))
        self.photo.setPixmap(QtGui.QPixmap(imageName))

    def soundSetting(self, soundName):
        self.sound_filename = soundName
        self.sound_fullpath = QtCore.QDir.current().absoluteFilePath(
            self.sound_filename)
        self.sound_url = QtCore.QUrl.fromLocalFile(self.sound_fullpath)
        self.sound_content = M.QMediaContent(self.sound_url)
        self.sound_player = M.QMediaPlayer()
        self.sound_player.setMedia(self.sound_content)
        self.sound_player.play()

    def videoSetting(self, videoName):
        self.video_filename = os.path.abspath(videoName)
        self.mediaPlayer.setMedia(
            QMediaContent(QUrl.fromLocalFile(self.video_filename)))
        self.mediaPlayer.setVideoOutput(self.videowidget)
        self.resetSetting()
        self.videowidget.setGeometry(QtCore.QRect(0, 0, 1920, 1080))
        self.mediaPlayer.play()

    def resetSetting(self):
        self.videowidget.setGeometry(QtCore.QRect(0, 0, 0, 0))
        self.photo.setGeometry(QtCore.QRect(0, 0, 0, 0))

    def show_1(self, value):
        if value == "1":
            self.imageSetting("image/1.png")
        elif value == "10":
            self.imageSetting("image/1n.png")
        elif value == "100":
            self.imageSetting("image/1y.png")
            self.soundSetting('sound/1.mp3')

    def show_2(self, value):
        if value == "2":
            self.imageSetting("image/2.png")
        elif value == "20":
            self.imageSetting("image/2n.png")
            self.soundSetting("sound/2.mp3")
        elif value == "200":
            self.videoSetting('video/2y.mp4')

    def show_3(self, value):
        if value == "3":
            self.imageSetting("image/3.png")
        elif value == "30":
            self.imageSetting("image/3n.png")
            self.soundSetting("sound/3.mp3")
        elif value == "300":
            self.videoSetting('video/3y.mp4')

    def show_4(self, value):
        if value == "4":
            self.imageSetting("image/4.png")
        elif value == "40":
            self.soundSetting("sound/4.mp3")
            self.imageSetting("image/4n.png")
        elif value == "400":
            self.imageSetting('image/5.png')
            self.soundSetting("sound/5.mp3")

    def show_5(self, value):
        if value == "5":
            self.imageSetting("image/5.png")
            self.soundSetting("sound/5.mp3")
        elif value == "50":
            self.imageSetting("image/6.png")
        elif value == "500":
            self.soundSetting("music/1.mp3")
            self.imageSetting("image/6.png")

    def show_6(self, value):
        if value == "6":
            self.imageSetting("image/6.png")
예제 #12
0
class QtPlayer(QMainWindow):
    pRate = 1.0

    def __init__(self):
        super().__init__()
        # 设置窗口
        self.setGeometry(300, 300, 800, 600 + 96)
        self.setWindowTitle('Player')
        self.setFixedSize(800, 600 + 96)

        # 设置滑动条
        self.slider = QSlider(QtCore.Qt.Horizontal, self)
        self.slider.setGeometry(10, 640, 800 - 20, 20)
        self.slider.setRange(0, 100)
        self.slider.sliderPressed.connect(self.SlideChanged)
        self.slider.valueChanged.connect(self.setClock)  # 设置时间条
        self.slider.show()

        # 设置按钮
        self.btn = QPushButton('暂停', self)
        self.btn.clicked.connect(self.handleButton)
        self.btn.resize(self.btn.sizeHint())
        self.btn.move(700 / 2, 600 + 60)

        self.btn1 = QPushButton('播放', self)
        self.btn1.clicked.connect(self.handleButton1)
        self.btn1.resize(self.btn1.sizeHint())
        self.btn1.move(700 / 2, 600 + 60)
        self.btn1.hide()

        self.forward = QPushButton('快进', self)
        self.forward.clicked.connect(self.handleForward)
        self.forward.resize(self.btn.sizeHint())
        self.forward.move(700 / 2 + 70, 600 + 60)

        self.back = QPushButton('快退', self)
        self.back.clicked.connect(self.handleBack)
        self.back.resize(self.btn.sizeHint())
        self.back.move(700 / 2 - 70, 600 + 60)

        # 设置菜单
        self.createMenu()

        # 多媒体播放器
        self.vw = QVideoWidget(self)
        self.vw.setGeometry(QtCore.QRect(0, 30, 800, 600))
        self.vw.show()

        # 视频读入
        self.player = QMediaPlayer(self)
        self.player.setVideoOutput(self.vw)  # 视频播放输出的widget,就是上面定义的
        self.player.positionChanged.connect(self.PlaySlide)
        self.player.durationChanged.connect(self.MediaTime)

        # 音量条(音量初始化需要player定义好了才能设置)
        self.createVol()

        # 时间条    (播放时间/视频时长)
        self.clock = QLabel(self)
        self.clock.setText("00:00/00:00")
        self.clock.setGeometry(550, 660, 80, 30)

        # 进入主循环
        self.show()

    def createVol(self):  # 音量调节
        self.volLabel = QLabel(self)
        self.volLabel.setText("音量")
        self.volLabel.setGeometry(100, 660, 30, 30)

        self.volSlider = QSlider(QtCore.Qt.Horizontal, self)
        self.volSlider.setGeometry(130, 660, 80, 30)
        self.volSlider.setRange(0, 100)
        self.volSlider.valueChanged.connect(self.volChanged)
        self.volSlider.setValue(80)  # 默认80%的音量
        self.volSlider.show()

    def setClock(self):
        tmp1 = self.player.position()
        tmp2 = self.player.duration()
        self.clock.setText("%d:%d/%d:%d" %
                           (tmp1 / 1000 / 60, tmp1 / 1000 % 60,
                            tmp2 / 1000 / 60, tmp2 / 1000 % 60))

    def volChanged(self):  # 音量调节
        self.player.setVolume(self.volSlider.value())

    def SlideChanged(self):  # 滚动条手动改变
        self.player.setPosition(self.slider.value() * 1000)

    def PlaySlide(self, val):  # 设置滚动条值
        self.slider.setValue(int(val / 1000))

    def MediaTime(self, time):  # 设置滚动条范围
        self.slider.setValue(0)
        self.time = self.player.duration() / 1000
        self.slider.setRange(0, int(self.time))

    def handleButton1(self):  # 播放
        self.player.play()
        self.btn1.hide()
        self.btn.show()

    def handleButton(self):  # 暂停
        self.player.pause()
        self.btn.hide()
        self.btn1.show()

    def handleBack(self):  # 慢放
        if self.pRate > 0.5:
            self.pRate = self.pRate - 0.5
            self.player.setPlaybackRate(self.pRate)

    def handleForward(self):  # 快放
        if self.pRate < 1.5:
            self.pRate = self.pRate + 0.5
            self.player.setPlaybackRate(self.pRate)

    def createMenu(self):  #创建菜单
        self.fileMenu()

    def fileMenu(self):
        menu = self.menuBar().addMenu('文件(&F)')

        openfile = menu.addAction('打开(&O)', self.openfile_triggered)
        quitfile = menu.addAction('退出(&Q)', self.quitfile_triggered)

        openfile.setShortcut("Ctrl+O")
        quitfile.setShortcut("Ctrl+Q")

    def openfile_triggered(self):
        self.player.setMedia(QMediaContent(
            QFileDialog.getOpenFileUrl()[0]))  # 选取视频文件
        self.player.play()
        """
        filename, fileType = QFileDialog.getOpenFileName(self, "打开文件", './', "Video Files(*.mp4)")
        if len(fileType) != 0:
            self.player.setMedia(QMediaContent(QUrl.fromLocalFile(filename)))  # 选取视频文件
            self.player.play() # 播放视频
        """

    def quitfile_triggered(self):
        self.close()
예제 #13
0
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1318, 719)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            MainWindow.sizePolicy().hasHeightForWidth())
        MainWindow.setSizePolicy(sizePolicy)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setEnabled(True)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.centralwidget.sizePolicy().hasHeightForWidth())
        self.centralwidget.setSizePolicy(sizePolicy)
        self.centralwidget.setObjectName("centralwidget")
        self.startButton = QtWidgets.QPushButton(self.centralwidget)
        self.startButton.setGeometry(QtCore.QRect(10, 630, 231, 41))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.startButton.sizePolicy().hasHeightForWidth())
        self.startButton.setSizePolicy(sizePolicy)
        self.startButton.setMaximumSize(QtCore.QSize(16777215, 41))
        font = QtGui.QFont()
        font.setPointSize(14)
        self.startButton.setFont(font)
        self.startButton.setObjectName("startButton")
        self.EmotionLabel = QtWidgets.QLabel(self.centralwidget)
        self.EmotionLabel.setGeometry(QtCore.QRect(10, 20, 400, 21))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.EmotionLabel.sizePolicy().hasHeightForWidth())
        self.EmotionLabel.setSizePolicy(sizePolicy)
        self.EmotionLabel.setMaximumSize(QtCore.QSize(16777215, 21))
        font = QtGui.QFont()
        font.setPointSize(12)
        self.EmotionLabel.setFont(font)
        self.EmotionLabel.setObjectName("EmotionLabel")
        self.graphic1 = GraphicsLayoutWidget(self.centralwidget)
        self.graphic1.setGeometry(QtCore.QRect(680, 50, 611, 280))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.graphic1.sizePolicy().hasHeightForWidth())
        self.graphic1.setSizePolicy(sizePolicy)
        self.graphic1.setMinimumSize(QtCore.QSize(153, 70))
        self.graphic1.setObjectName("graphic1")
        self.graphic2 = GraphicsLayoutWidget(self.centralwidget)
        self.graphic2.setGeometry(QtCore.QRect(680, 390, 611, 280))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.graphic2.sizePolicy().hasHeightForWidth())
        self.graphic2.setSizePolicy(sizePolicy)
        self.graphic2.setMinimumSize(QtCore.QSize(153, 70))
        self.graphic2.setObjectName("graphic2")
        self.graphLabel1 = QtWidgets.QLabel(self.centralwidget)
        self.graphLabel1.setEnabled(True)
        self.graphLabel1.setGeometry(QtCore.QRect(680, 20, 400, 21))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.graphLabel1.sizePolicy().hasHeightForWidth())
        self.graphLabel1.setSizePolicy(sizePolicy)
        self.graphLabel1.setMaximumSize(QtCore.QSize(16777215, 21))
        font = QtGui.QFont()
        font.setPointSize(12)
        self.graphLabel1.setFont(font)
        self.graphLabel1.setObjectName("graphLabel1")
        self.graphLabel2 = QtWidgets.QLabel(self.centralwidget)
        self.graphLabel2.setEnabled(True)
        self.graphLabel2.setGeometry(QtCore.QRect(680, 350, 400, 21))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.graphLabel2.sizePolicy().hasHeightForWidth())
        self.graphLabel2.setSizePolicy(sizePolicy)
        self.graphLabel2.setMaximumSize(QtCore.QSize(16777215, 21))
        font = QtGui.QFont()
        font.setPointSize(12)
        self.graphLabel2.setFont(font)
        self.graphLabel2.setObjectName("graphLabel2")
        self.videoWidget = QVideoWidget(self.centralwidget)
        self.videoWidget.setGeometry(QtCore.QRect(10, 50, 611, 280))
        self.videoWidget.setMinimumSize(QtCore.QSize(153, 70))
        self.videoWidget.setObjectName("videoWidget")
        self.faceWidget = QtWidgets.QLabel(self.centralwidget)
        self.faceWidget.setGeometry(QtCore.QRect(10, 340, 611, 280))
        self.faceWidget.setMinimumSize(QtCore.QSize(153, 70))
        self.faceWidget.setText("")
        self.faceWidget.setObjectName("faceWidget")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 1318, 21))
        self.menubar.setObjectName("menubar")
        self.openPrevSession = QtWidgets.QMenu(self.menubar)
        self.openPrevSession.setObjectName("openPrevSession")
        self.settings = QtWidgets.QMenu(self.menubar)
        self.settings.setObjectName("settings")
        MainWindow.setMenuBar(self.menubar)
        self.action = QtWidgets.QAction(MainWindow)
        self.action.setObjectName("action")
        self.choosePort = QtWidgets.QAction(MainWindow)
        self.choosePort.setObjectName("choosePort")
        self.setEmotions = QtWidgets.QAction(MainWindow)
        self.setEmotions.setObjectName("setEmotions")
        self.chooseVideo = QtWidgets.QAction(MainWindow)
        self.chooseVideo.setObjectName("chooseVideo")
        self.setEmotionsData = QtWidgets.QAction(MainWindow)
        self.setEmotionsData.setObjectName("setEmotionsData")
        self.settings.addAction(self.setEmotionsData)
        self.settings.addAction(self.setEmotions)
        self.settings.addAction(self.chooseVideo)
        self.settings.addAction(self.choosePort)
        self.menubar.addAction(self.settings.menuAction())
        self.menubar.addAction(self.openPrevSession.menuAction())

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.startButton.setText(_translate("MainWindow", "Запуск"))
        self.EmotionLabel.setText(_translate("MainWindow", "Эмоция:"))
        self.graphLabel1.setText(_translate("MainWindow", "Окраска эмоции"))
        self.graphLabel2.setText(_translate("MainWindow", "Сила эмоции"))
        self.openPrevSession.setTitle(
            _translate("MainWindow", "Загрузить предыдущую сессию работы"))
        self.settings.setTitle(_translate("MainWindow", "Настройки"))
        self.action.setText(
            _translate("MainWindow", "Загрузить предыдущую сессию"))
        self.choosePort.setText(_translate("MainWindow", "Выбрать порт"))
        self.setEmotions.setText(
            _translate("MainWindow", "Настроить определяемые эмоции"))
        self.chooseVideo.setText(_translate("MainWindow", "Выбрать видеофайл"))
        self.setEmotionsData.setText(
            _translate("MainWindow", "Загрузить определяемые эмоции"))
예제 #14
0
class GUI(QMainWindow):
    def __init__(self):
        super().__init__()
        self.ui=Ui_MainWindow()
        self.ui.setupUi(self)
        self.setWindowTitle("Video Player")
        self.setWindowIcon(QIcon(r"C:\Users\Yash\PycharmProjects\ppppp\App-Media-icon.png"))
        self.ui.files.setCheckable(True)
        self.setMinimumSize(500,500)
        status=QStatusBar(self)
        status.setStyleSheet("background-color: rgb(177, 177, 177);")
        self.setStatusBar(status)
        self.player=QMediaPlayer()
        self.player.play()
        self.player.error.connect(self.erroralert)

        self.playlist = QMediaPlaylist()
        self.ui.play.clicked.connect(self.plays)
        self.current=False
        self.player.setPlaylist(self.playlist)
        self.player.setVolume(30)
        self.ui.horizontalSlider_2.setValue(30)
        self.videoWidget = QVideoWidget(self)
        self.videoWidget.setGeometry(10,300,141,111)
        self.videoWidget.setStyleSheet("background-color: rgb(0,0,0);")
        self.player.setVideoOutput(self.videoWidget)

        style="""QSlider::groove:horizontal {
        border: 1px solid #bbb;
        background: black;
        height: 10px;
        border-radius: 4px;
        }
        
        QSlider::sub-page:horizontal {
        background: qlineargradient(x1: 0, y1: 0,    x2: 0, y2: 1,
            stop: 0 #66e, stop: 1 #bbf);
        background: qlineargradient(x1: 0, y1: 0.2, x2: 1, y2: 1,
            stop: 0 #bbf, stop: 1 #55f);
        border: 1px solid #777;
        height: 10px;
        border-radius: 4px;
        }
        
        QSlider::add-page:horizontal {
        background: #fff;
        border: 1px solid #777;
        height: 10px;
        border-radius: 4px;
        }
        
        QSlider::handle:horizontal {
        background: qlineargradient(x1:0, y1:0, x2:1, y2:1,
            stop:0 #eee, stop:1 #ccc);
        border: 1px solid #777;
        width: 13px;
        margin-top: -2px;
        margin-bottom: -2px;
        border-radius: 4px;
        }
        
        QSlider::handle:horizontal:hover {
        background: qlineargradient(x1:0, y1:0, x2:1, y2:1,
            stop:0 #000, stop:1 #ddd);
        border: 1px solid #444;
        border-radius: 4px;
        }
        
        QSlider::sub-page:horizontal:disabled {
        background: #bbb;
        border-color: #999;
        }
        
        QSlider::add-page:horizontal:disabled {
        background: #eee;
        border-color: #999;
        }
        
        QSlider::handle:horizontal:disabled {
        background: #eee;
        border: 1px solid #aaa;
        border-radius: 4px;
        }"""
        self.ui.horizontalSlider_3.setMinimum(0)
        self.ui.horizontalSlider_3.setMaximum(2)
        self.ui.horizontalSlider_3.setValue(1)
        self.player.setPlaybackRate(1)
        self.ui.horizontalSlider_3.valueChanged.connect(self.volume)
        self.ui.horizontalSlider.setStyleSheet(style)
        self.ui.horizontalSlider.setPageStep(5)
        self.ui.horizontalSlider.setSingleStep(5)
        self.ui.play.setToolTip("Play")
        self.ui.horizontalSlider_2.valueChanged.connect(self.voice)
        self.ui.next.pressed.connect(self.playlist.next)
        self.ui.prev.pressed.connect(self.playlist.previous)
        self.ui.reset.pressed.connect(self.stop)
        self.working=False
        self.ui.files.pressed.connect(self.check)
        self.ui.sound.pressed.connect(self.voice1)
        self.ui.actionIncrease_Sound.triggered.connect(self.voice2)
        self.ui.actionDecrease_Sound.triggered.connect(self.voice3)
        self.ui.actionSilent_Sound.triggered.connect(self.silent)
        self.ui.actionLight_Background.setCheckable(True)
        self.ui.actionDark_Background.setCheckable(True)
        self.ui.actionLight_Background.setChecked(True)
        self.ui.actionLight_Background.toggled.connect(self.background2)
        self.ui.actionDark_Background.toggled.connect(self.background1)
        self.ui.actionOpen_Folder.triggered.connect(self.open_folder)
        self.ui.actionhelp.triggered.connect(self.help)
        self.ui.actionabout.triggered.connect(self.about)
        #self.ui.files.toggled.connect(self.toggle_viewer)
        self.ui.listView.doubleClicked.connect(self.plays)
        self.ui.listView.setWindowIcon(QIcon(r"C:\Users\Yash\PycharmProjects\ppppp\App-Media-icon.png"))
        self.ui.comboBox.currentTextChanged.connect(self.change)
        self.ui.lineEdit.textEdited.connect(self.text_folder)
        #self.viewer.state.connect(self.ui.files.setChecked)
        self.ui.horizontalSlider.setFocusPolicy(Qt.StrongFocus)
        self.ui.horizontalSlider.setSingleStep(2)
        self.ui.horizontalSlider.setPageStep(2)

        play=QAction(self)
        play.setShortcut("Space")
        play.triggered.connect(self.plays)
        self.addAction(play)
        self.player.durationChanged.connect(self.update_duration)
        self.player.positionChanged.connect(self.update_position)
        self.list=[]

        self.timer=QTimer(self)
        self.timer.timeout.connect(self.time)
        self.timer.start(1000)
        self.model = PlaylistModel(self.playlist)
        self.ui.listView.setModel(self.model)
        self.playlist.currentIndexChanged.connect(self.playlist_position_changed)
        selection_model = self.ui.listView.selectionModel()
        selection_model.selectionChanged.connect(self.playlist_selection_changed)
        try:
            path=sys.argv[1]
            self.playlist.addMedia(
                QMediaContent(QUrl.fromLocalFile(path))
            )
            self.model.layoutChanged.emit()
            # If not playing, seeking to first of newly added + play.
            self.list.append(path)
            self.plays()
        except:
            pass
        right_arrow=QAction(self)
        right_arrow.setShortcut("Right")
        self.addAction(right_arrow)
        right_arrow.triggered.connect(self.forward)
        super_right=QAction(self)
        super_right.setShortcut("Ctrl+Right")
        self.addAction(super_right)
        super_right.triggered.connect(self.forwards)
        left_arrow=QAction(self)
        left_arrow.setShortcut("Left")
        self.addAction(left_arrow)
        left_arrow.triggered.connect(self.backward)
        super_left=QAction(self)
        super_left.setShortcut("Ctrl+Left")
        self.addAction(super_left)
        super_left.triggered.connect(self.backwards)

        self.ui.actionOpen_File.triggered.connect(self.open_file)
        self.setAcceptDrops(True)
        self.show()

    def help(self):
        QMessageBox.information(self, "Help", "This is your video player using Python")

    def about(self):
        QMessageBox.information(self, "About", "This is the video player made by Yash Rajput")
    def backwards(self):
        temp=self.player.position()-60000
        if temp>0:
            self.player.setPosition(temp)
            self.update_position(temp)
        else:
            temp=0
            self.player.setPosition(temp)
            self.update_position(temp)
    def forwards(self):
        temp=self.player.position()+60000
        if temp<self.player.duration():
            self.player.setPosition(temp)
            self.update_position(temp)
        else:
            self.playlist.next()
    def backward(self):
        temp=self.player.position()-30000
        if temp>0:
            self.player.setPosition(temp)
            self.update_position(temp)
        else:
            temp=0
            self.player.setPosition(temp)
            self.update_position(temp)
    def forward(self):
        temp=self.player.position()+30000
        if temp<self.player.duration():
            self.player.setPosition(temp)
            self.update_position(temp)
        else:
            self.playlist.next()
    def dropEvent(self, e):
        for url in e.mimeData().urls():
            self.playlist.addMedia(
                QMediaContent(url)
            )

        self.model.layoutChanged.emit()
        # If not playing, seeking to first of newly added + play.
        if self.player.state() != QMediaPlayer.PlayingState:
            i = self.playlist.mediaCount() - len(e.mimeData().urls())
            self.playlist.setCurrentIndex(i)
            self.player.play()
    def dragEnterEvent(self, e):
        for url in e.mimeData().urls():
            self.playlist.addMedia(
                QMediaContent(url)
            )

        self.model.layoutChanged.emit()
        # If not playing, seeking to first of newly added + play.
        if self.player.state() != QMediaPlayer.PlayingState:
            i = self.playlist.mediaCount() - len(e.mimeData().urls())
            self.playlist.setCurrentIndex(i)
            self.player.play()
    def volume(self):
        self.player.setPlaybackRate(self.ui.horizontalSlider_3.value())
    def time(self):
        time = QTime.currentTime()
        text = time.toString("hh:mm:ss")
        self.ui.lcdNumber.setNumDigits(8)
        self.ui.lcdNumber.display(text)
        self.ui.lcdNumber.setFrameShadow(QFrame.Sunken)
        self.ui.lcdNumber.setFrameShape(QFrame.Panel)
    def check(self):
        if self.working==False:
            self.ui.widget.hide()
            self.videoWidget.setGeometry(0,21,self.ui.widget.geometry().width(),self.ui.widget.geometry().height())
            self.working=True
        else:
            self.videoWidget.setGeometry(0,self.ui.widget.height()-90,151,111)
            self.working=False
            self.ui.widget.show()
    def resizeEvent(self, event):
        self.ui.widget.setGeometry(self.geometry().x()-self.geometry().getCoords()[0],self.geometry().y()-self.geometry().getCoords()[1],self.geometry().width(),self.geometry().height()-161)
        self.ui.listView.setGeometry(150,0,self.ui.widget.geometry().width()-152,self.ui.widget.height())
        self.ui.widget_2.setGeometry(0,self.ui.widget.geometry().height()+9,self.geometry().width(),30)
        self.ui.horizontalSlider.setGeometry(50,0,self.ui.widget_2.width()-102,self.ui.widget_2.height())
        self.ui.label_2.setGeometry(49+self.ui.horizontalSlider.geometry().width(),0,51,31)
        self.ui.widget_3.setGeometry(0,self.ui.widget_2.geometry().y()+40,self.geometry().width(),30)
        self.ui.sound.setGeometry(self.ui.widget_3.geometry().width()-153,0,28,24)
        self.ui.horizontalSlider_2.setGeometry(self.ui.widget_3.geometry().width()-113,0,108,31)
        self.ui.widget_4.setGeometry(0,self.ui.widget_3.geometry().y()+40,self.geometry().width(),30)
        self.ui.label_5.setGeometry(0,0,self.ui.widget_4.geometry().width()-102,21)
        self.ui.label_14.setGeometry(self.ui.widget_4.geometry().width()-91,0,91,21)
        if self.working==False:
            self.videoWidget.setGeometry(0,self.ui.widget.height()-90,151,111)
        else:
            self.videoWidget.setGeometry(0, 21, self.ui.widget.geometry().width(), self.ui.widget.geometry().height())
    def text_folder(self):
        temp=self.list
        self.playlist.clear()
        if self.ui.lineEdit.text()!='':
            for i in temp:
                import re
                if re.search(self.ui.lineEdit.text(),i):
                    self.playlist.addMedia(
                        QMediaContent(
                            QUrl.fromLocalFile(i)
                        )
                    )
        else:
            for i in temp:
                self.playlist.addMedia(
                        QMediaContent(
                            QUrl.fromLocalFile(i)
                        )
                    )
        self.model.layoutChanged.emit()
    def change(self):
        if self.ui.comboBox.currentText()=="View Mode":
            self.ui.listView.setViewMode(QListView.IconMode)
        else:
            self.ui.listView.setViewMode(QListView.ListMode)
    def stop(self):
        self.player.stop()
        self.ui.play.setIcon(QIcon(r'C:\Users\Yash\PycharmProjects\ppppp\images\Pause-icon.png'))
        self.current = True
    def background1(self):
        if self.ui.actionDark_Background.isChecked()==True:
            self.ui.actionLight_Background.setChecked(False)
            app.setApplicationName("Failamp")
            palette = QPalette()
            palette.setColor(QPalette.Window, QColor(53, 53, 53))
            palette.setColor(QPalette.WindowText, Qt.white)
            palette.setColor(QPalette.Base, QColor(25, 25, 25))
            palette.setColor(QPalette.AlternateBase, QColor(53, 53, 53))
            palette.setColor(QPalette.ToolTipBase, Qt.white)
            palette.setColor(QPalette.ToolTipText, Qt.white)
            palette.setColor(QPalette.Text, Qt.white)
            palette.setColor(QPalette.Button, QColor(53, 53, 53))
            palette.setColor(QPalette.ButtonText, Qt.white)
            palette.setColor(QPalette.BrightText, Qt.red)
            palette.setColor(QPalette.Link, QColor(42, 130, 218))
            palette.setColor(QPalette.Highlight, QColor(42, 130, 218))
            palette.setColor(QPalette.HighlightedText, Qt.black)
            app.setPalette(palette)
    def background2(self):
        if self.ui.actionLight_Background.isChecked()==True:
            self.ui.actionDark_Background.setChecked(False)
            palette = QPalette()
            palette.setColor(QPalette.Window, Qt.white)
            palette.setColor(QPalette.WindowText, Qt.black)
            palette.setColor(QPalette.Base, Qt.white)
            palette.setColor(QPalette.AlternateBase, QColor(246,246,246))
            palette.setColor(QPalette.ToolTipBase, QColor(255,255,220))
            palette.setColor(QPalette.ToolTipText, Qt.black)
            palette.setColor(QPalette.Text, Qt.black)
            palette.setColor(QPalette.Button, QColor(240,240,240))
            palette.setColor(QPalette.ButtonText, Qt.black)
            palette.setColor(QPalette.BrightText, Qt.white)
            palette.setColor(QPalette.Link, Qt.blue)
            palette.setColor(QPalette.Highlight, Qt.darkBlue)
            palette.setColor(QPalette.HighlightedText, Qt.white)
            app.setPalette(palette)
    def open_folder(self):
        dir_ = QFileDialog.getExistingDirectory(None, 'Select a folder:', 'C:\\', QFileDialog.ShowDirsOnly)
        for (dirpath, dirnames, filenames) in os.walk(dir_):
            for tfile in filenames :
                if tfile.endswith(".264") or tfile.endswith(".3ga") or tfile.endswith(".3gp") or tfile.endswith(".aac") or tfile.endswith(".avi") or tfile.endswith(".cda") or tfile.endswith(".dash") or tfile.endswith(".dvr")  or tfile.endswith(".flac") or tfile.endswith(".ifo") or tfile.endswith(".m2t") or tfile.endswith(".m2ts") or tfile.endswith(".m3u8") or tfile.endswith(".m4v") or tfile.endswith(".mkv") or tfile.endswith(".mov") or tfile.endswith(".mp3") or tfile.endswith(".mp4") or tfile.endswith(".mpg") or tfile.endswith(".mts") or tfile.endswith(".ogg") or tfile.endswith(".ogu") or tfile.endswith(".opus") or tfile.endswith(".pls") or tfile.endswith(".rec") or tfile.endswith(".rmvb") or tfile.endswith(".snd") or tfile.endswith(".sub") or tfile.endswith(".ts") or tfile.endswith(".vob") or tfile.endswith(".webm") or tfile.endswith(".wma") or tfile.endswith(".wmv") or tfile.endswith(".zab"):
                    if (dirpath + "/" + tfile) not in self.list:
                        self.playlist.addMedia(
                            QMediaContent(
                                QUrl.fromLocalFile(dirpath + "/" + tfile)
                            )
                        )
                        self.list.append(dirpath + "/" + tfile)
        self.model.layoutChanged.emit()
    def erroralert(self, *args):
        pass
    def playlist_selection_changed(self, ix):
        # We receive a QItemSelection from selectionChanged.
        i = ix.indexes()[0].row()
        self.playlist.setCurrentIndex(i)
        self.ui.label_5.setText(os.path.basename(self.list[i]))
    def playlist_position_changed(self, i):
        if i > -1:
            ix = self.model.index(i)
            self.ui.listView.setCurrentIndex(ix)

    def open_file(self):
        path, _ = QFileDialog.getOpenFileName(self, "Open file", "", "vedio files(*.264;*.3ga;*.3gp;*.aac;*.avi;*.cda;*.dash;*.dvr;*flac;*.ifo;*.m2t;*.m2ts;*.m3u8;*.m4v;*.mkv;*.mov;*.mp3;*.mp4;*.mpg;*.mts;*.ogg;*.ogu;*.opus;*.pls;*.rec;*.rmvb;*.snd;*.sub;*.ts;*.vob;*.webm;*.wma;*.wmv;*.zab")
        if path and path not in self.list:
            self.playlist.addMedia(
                QMediaContent(
                    QUrl.fromLocalFile(path)
                )
            )
            self.list.append(path)

        self.model.layoutChanged.emit()
        self.plays()
    def update_duration(self, duration):
        self.ui.horizontalSlider.setMaximum(duration)

        if duration >= 0:
            self.ui.label_2.setText(self.hhmmss(duration))
            self.time=self.hhmmss(duration)
    def update_position(self, position):
        if position >= 0:
            self.ui.label_14.setText(str(self.hhmmss(position))+"/"+str(self.time))
            self.ui.label_3.setText(self.hhmmss(position))
        # Disable the events to prevent updating triggering a setPosition event (can cause stuttering).
        self.ui.horizontalSlider.blockSignals(True)
        self.ui.horizontalSlider.setValue(position)
        self.ui.horizontalSlider.blockSignals(False)

    def hhmmss(self,ms):

        # s = 1000
        # m = 60000
        # h = 360000
        h, r = divmod(ms,3600000)
        m, r = divmod(r,60000)
        s, _ = divmod(r,1000)
        return ("%d:%02d:%02d" % (h, m, s)) if h else ("%d:%02d" % (m, s))
    def plays(self):
        if self.current==False:
            self.player.play()
            self.ui.play.setIcon(QIcon(r'C:\Users\Yash\PycharmProjects\ppppp\images\Pause-icon.png'))
            self.current=True
        else:
            self.player.pause()
            self.ui.play.setIcon(QIcon(r'C:\Users\Yash\PycharmProjects\ppppp\images\Button-Play-icon.png'))
            self.current=False
        self.videoWidget.setGeometry(0, 21, self.ui.widget.geometry().width(), self.ui.widget.geometry().height())
        self.working = True
    def voice(self):
        self.player.setVolume(self.ui.horizontalSlider_2.value())
        if self.ui.horizontalSlider_2.value()==0:
            self.ui.sound.setIcon(QIcon(r'C:\Users\Yash\PycharmProjects\ppppp\images\Status-audio-volume-muted-icon.png'))
        else:
            self.ui.sound.setIcon(QIcon(r'C:\Users\Yash\PycharmProjects\ppppp\images\62788-speaker-low-volume-icon.png'))
    def voice1(self):
        if self.ui.horizontalSlider_2.value()>0:
            self.ui.horizontalSlider_2.setValue(0)
            self.player.setVolume(self.ui.horizontalSlider_2.value())
            self.ui.sound.setIcon(QIcon(r'C:\Users\Yash\PycharmProjects\ppppp\images\Status-audio-volume-muted-icon.png'))
        else:
            self.ui.horizontalSlider_2.setValue(30)
            self.player.setVolume(self.ui.horizontalSlider_2.value())
            self.ui.sound.setIcon(QIcon(r'C:\Users\Yash\PycharmProjects\ppppp\images\62788-speaker-low-volume-icon.png'))
    def voice2(self):
        if self.player.volume()<100:
            self.player.setVolume(self.player.volume()+1)
            self.ui.sound.setIcon(
                QIcon(r'C:\Users\Yash\PycharmProjects\ppppp\images\62788-speaker-low-volume-icon.png'))
            self.ui.horizontalSlider_2.setValue(self.player.volume())
    def voice3(self):
        if self.player.volume()>-1:
            self.player.setVolume(self.player.volume()-1)
        if self.player.volume()==0:
            self.ui.sound.setIcon(QIcon(r'C:\Users\Yash\PycharmProjects\ppppp\images\Status-audio-volume-muted-icon.png'))
        self.ui.horizontalSlider_2.setValue(self.player.volume())
    def silent(self):
        self.player.setVolume(0)
        self.ui.sound.setIcon(QIcon(r'C:\Users\Yash\PycharmProjects\ppppp\images\62788-speaker-low-volume-icon.png'))
예제 #15
0
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1128, 866)
        MainWindow.setStyleSheet("background-color: rgb(154, 184, 200)")
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.tabWidget = QtWidgets.QTabWidget(self.centralwidget)
        self.tabWidget.setGeometry(QtCore.QRect(0, 0, 1241, 831))
        self.tabWidget.setStyleSheet("")
        self.tabWidget.setObjectName("tabWidget")
        self.tab = QtWidgets.QWidget()
        self.tab.setObjectName("tab")
        self.lineEdit = QtWidgets.QLineEdit(self.tab)
        self.lineEdit.setGeometry(QtCore.QRect(310, 110, 271, 61))
        self.lineEdit.setObjectName("lineEdit")
        self.label_2 = QtWidgets.QLabel(self.tab)
        self.label_2.setGeometry(QtCore.QRect(310, 40, 501, 61))
        font = QtGui.QFont()
        font.setItalic(True)
        self.label_2.setFont(font)
        self.label_2.setObjectName("label_2")
        self.pushButton = QtWidgets.QPushButton(self.tab)
        self.pushButton.setGeometry(QtCore.QRect(630, 110, 181, 61))
        font = QtGui.QFont()
        font.setPointSize(9)
        font.setBold(True)
        font.setWeight(75)
        self.pushButton.setFont(font)
        self.pushButton.setObjectName("pushButton")
        self.tabWidget.addTab(self.tab, "")
        self.tab_2 = QtWidgets.QWidget()
        self.tab_2.setObjectName("tab_2")
        self.pushButton_3 = QtWidgets.QPushButton(self.tab_2)
        self.pushButton_3.setGeometry(QtCore.QRect(480, 167, 141, 61))
        font = QtGui.QFont()
        font.setPointSize(9)
        font.setBold(True)
        font.setItalic(False)
        font.setWeight(75)
        self.pushButton_3.setFont(font)
        self.pushButton_3.setObjectName("pushButton_3")
        self.pushButton_4 = QtWidgets.QPushButton(self.tab_2)
        self.pushButton_4.setGeometry(QtCore.QRect(480, 270, 141, 61))
        font = QtGui.QFont()
        font.setPointSize(9)
        font.setBold(True)
        font.setWeight(75)
        self.pushButton_4.setFont(font)
        self.pushButton_4.setObjectName("pushButton_4")
        self.label_9 = QtWidgets.QLabel(self.tab_2)
        self.label_9.setGeometry(QtCore.QRect(390, 60, 291, 81))
        font = QtGui.QFont()
        font.setPointSize(12)
        font.setItalic(True)
        self.label_9.setFont(font)
        self.label_9.setObjectName("label_9")
        self.tabWidget.addTab(self.tab_2, "")
        self.tab_5 = QtWidgets.QWidget()
        self.tab_5.setObjectName("tab_5")
        self.label_8 = QtWidgets.QLabel(self.tab_5)
        self.label_8.setGeometry(QtCore.QRect(10, 40, 451, 311))
        self.label_8.setObjectName("label_8")
        self.pushButton_5 = QtWidgets.QPushButton(self.tab_5)
        self.pushButton_5.setGeometry(QtCore.QRect(810, 410, 93, 61))
        font = QtGui.QFont()
        font.setBold(True)
        font.setWeight(75)
        self.pushButton_5.setFont(font)
        self.pushButton_5.setObjectName("pushButton_5")
        self.pushButton_6 = QtWidgets.QPushButton(self.tab_5)
        self.pushButton_6.setGeometry(QtCore.QRect(370, 537, 341, 111))
        font = QtGui.QFont()
        font.setPointSize(20)
        font.setBold(True)
        font.setWeight(75)
        self.pushButton_6.setFont(font)
        self.pushButton_6.setObjectName("pushButton_6")
        self.player = QVideoWidget(self.tab_5)
        self.player.setGeometry(QtCore.QRect(630, 40, 441, 311))
        self.player.setObjectName("player")
        self.tabWidget.addTab(self.tab_5, "")
        self.tab_6 = QtWidgets.QWidget()
        self.tab_6.setObjectName("tab_6")
        self.label_11 = QtWidgets.QLabel(self.tab_6)
        self.label_11.setGeometry(QtCore.QRect(160, 80, 101, 41))
        self.label_11.setObjectName("label_11")
        self.label_12 = QtWidgets.QLabel(self.tab_6)
        self.label_12.setGeometry(QtCore.QRect(160, 150, 101, 41))
        self.label_12.setObjectName("label_12")
        self.label_13 = QtWidgets.QLabel(self.tab_6)
        self.label_13.setGeometry(QtCore.QRect(100, 290, 171, 41))
        self.label_13.setObjectName("label_13")
        self.label_14 = QtWidgets.QLabel(self.tab_6)
        self.label_14.setGeometry(QtCore.QRect(160, 220, 111, 41))
        self.label_14.setObjectName("label_14")
        self.pushButton_7 = QtWidgets.QPushButton(self.tab_6)
        self.pushButton_7.setGeometry(QtCore.QRect(380, 370, 341, 111))
        font = QtGui.QFont()
        font.setPointSize(20)
        font.setBold(True)
        font.setWeight(75)
        self.pushButton_7.setFont(font)
        self.pushButton_7.setObjectName("pushButton_7")
        self.lineEdit_2 = QtWidgets.QLineEdit(self.tab_6)
        self.lineEdit_2.setGeometry(QtCore.QRect(290, 140, 581, 61))
        self.lineEdit_2.setObjectName("lineEdit_2")
        self.lineEdit_3 = QtWidgets.QLineEdit(self.tab_6)
        self.lineEdit_3.setGeometry(QtCore.QRect(290, 70, 581, 61))
        self.lineEdit_3.setObjectName("lineEdit_3")
        self.lineEdit_4 = QtWidgets.QLineEdit(self.tab_6)
        self.lineEdit_4.setGeometry(QtCore.QRect(290, 210, 581, 61))
        self.lineEdit_4.setObjectName("lineEdit_4")
        self.lineEdit_5 = QtWidgets.QLineEdit(self.tab_6)
        self.lineEdit_5.setGeometry(QtCore.QRect(290, 290, 581, 61))
        self.lineEdit_5.setObjectName("lineEdit_5")
        self.tabWidget.addTab(self.tab_6, "")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 1128, 26))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        self.tabWidget.setCurrentIndex(0)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.label_2.setText(_translate("MainWindow", "<html><head/><body><p align=\"center\"><span style=\" font-size:11pt; font-weight:600;\">Add your position to get the closest hotel for you</span></p></body></html>"))
        self.pushButton.setText(_translate("MainWindow", "Enter!"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Country"))
        self.pushButton_3.setText(_translate("MainWindow", "Lysebu Hotel"))
        self.pushButton_4.setText(_translate("MainWindow", "Dalen Hotel"))
        self.label_9.setText(_translate("MainWindow", "<html><head/><body><p align=\"center\"><span style=\" font-size:16pt; font-weight:600;\">Choose your hotel</span></p></body></html>"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Hotel"))
        self.label_8.setText(_translate("MainWindow", "TextLabel"))
        self.pushButton_5.setText(_translate("MainWindow", "Play video"))
        self.pushButton_6.setText(_translate("MainWindow", "Book Now!"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_5), _translate("MainWindow", "Hotel\'s Info"))
        self.label_11.setText(_translate("MainWindow", "<html><head/><body><p align=\"center\"><span style=\" font-size:11pt; font-weight:600; font-style:italic;\">First Name</span></p></body></html>"))
        self.label_12.setText(_translate("MainWindow", "<html><head/><body><p align=\"center\"><span style=\" font-size:11pt; font-weight:600; font-style:italic;\">Last Name</span></p></body></html>"))
        self.label_13.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-size:11pt; font-weight:600; font-style:italic;\">Number Of Nights</span></p></body></html>"))
        self.label_14.setText(_translate("MainWindow", "<html><head/><body><p align=\"center\"><span style=\" font-size:11pt; font-weight:600; font-style:italic;\">ID Number</span></p></body></html>"))
        self.pushButton_7.setText(_translate("MainWindow", "Book Now!"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_6), _translate("MainWindow", "Book"))
예제 #16
0
class Ui_main(object):
    def setupUi(self, main):
        main.setObjectName("main")
        main.resize(1024, 768)
        main.setContextMenuPolicy(QtCore.Qt.NoContextMenu)
        main.setAcceptDrops(False)
        main.setAutoFillBackground(False)
        self.verticalLayoutWidget = QtWidgets.QWidget(main)
        self.verticalLayoutWidget.setGeometry(QtCore.QRect(0, 10, 1021, 80))
        self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
        self.titleLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
        self.titleLayout.setSizeConstraint(QtWidgets.QLayout.SetMaximumSize)
        self.titleLayout.setContentsMargins(0, 0, 0, 0)
        self.titleLayout.setSpacing(0)
        self.titleLayout.setObjectName("titleLayout")
        self.title = QtWidgets.QLabel(self.verticalLayoutWidget)
        self.title.setEnabled(True)
        font = QtGui.QFont()
        font.setPointSize(26)
        font.setBold(True)
        font.setWeight(75)
        self.title.setFont(font)
        self.title.setTextFormat(QtCore.Qt.AutoText)
        self.title.setAlignment(QtCore.Qt.AlignCenter)
        self.title.setObjectName("title")
        self.titleLayout.addWidget(self.title)
        self.verticalLayoutWidget_2 = QtWidgets.QWidget(main)
        self.verticalLayoutWidget_2.setGeometry(QtCore.QRect(
            50, 130, 391, 271))
        self.verticalLayoutWidget_2.setObjectName("verticalLayoutWidget_2")
        self.menuLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget_2)
        self.menuLayout.setSizeConstraint(QtWidgets.QLayout.SetMaximumSize)
        self.menuLayout.setContentsMargins(0, 0, 0, 0)
        self.menuLayout.setSpacing(0)
        self.menuLayout.setObjectName("menuLayout")
        spacerItem = QtWidgets.QSpacerItem(20, 40,
                                           QtWidgets.QSizePolicy.Minimum,
                                           QtWidgets.QSizePolicy.Expanding)
        self.menuLayout.addItem(spacerItem)
        self.buttonLayout = QtWidgets.QHBoxLayout()
        self.buttonLayout.setObjectName("buttonLayout")
        self.selectButton = QtWidgets.QPushButton(self.verticalLayoutWidget_2)
        sizePolicy = QtWidgets.QSizePolicy(
            QtWidgets.QSizePolicy.Expanding,
            QtWidgets.QSizePolicy.MinimumExpanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.selectButton.sizePolicy().hasHeightForWidth())
        self.selectButton.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setPointSize(10)
        self.selectButton.setFont(font)
        self.selectButton.setObjectName("selectButton")
        self.buttonLayout.addWidget(self.selectButton)
        self.submitButton = QtWidgets.QPushButton(self.verticalLayoutWidget_2)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.submitButton.sizePolicy().hasHeightForWidth())
        self.submitButton.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setPointSize(10)
        self.submitButton.setFont(font)
        self.submitButton.setObjectName("submitButton")
        self.buttonLayout.addWidget(self.submitButton)
        self.menuLayout.addLayout(self.buttonLayout)
        spacerItem1 = QtWidgets.QSpacerItem(20, 40,
                                            QtWidgets.QSizePolicy.Minimum,
                                            QtWidgets.QSizePolicy.Fixed)
        self.menuLayout.addItem(spacerItem1)
        self.checkBoxLayout = QtWidgets.QHBoxLayout()
        self.checkBoxLayout.setObjectName("checkBoxLayout")
        self.heatmap = QtWidgets.QCheckBox(self.verticalLayoutWidget_2)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.heatmap.sizePolicy().hasHeightForWidth())
        self.heatmap.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.heatmap.setFont(font)
        self.heatmap.setObjectName("heatmap")
        self.checkBoxLayout.addWidget(self.heatmap, 0, QtCore.Qt.AlignHCenter)
        self.counting = QtWidgets.QCheckBox(self.verticalLayoutWidget_2)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.counting.sizePolicy().hasHeightForWidth())
        self.counting.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.counting.setFont(font)
        self.counting.setObjectName("counting")
        self.checkBoxLayout.addWidget(self.counting)
        self.menuLayout.addLayout(self.checkBoxLayout)
        spacerItem2 = QtWidgets.QSpacerItem(20, 40,
                                            QtWidgets.QSizePolicy.Minimum,
                                            QtWidgets.QSizePolicy.Expanding)
        self.menuLayout.addItem(spacerItem2)
        self.videoWidget = QVideoWidget(main)
        self.videoWidget.setGeometry(QtCore.QRect(500, 130, 480, 270))
        self.videoWidget.setAutoFillBackground(False)
        self.videoWidget.setObjectName("videoWidget")
        self.resultWidget = QVideoWidget(main)
        self.resultWidget.setGeometry(QtCore.QRect(500, 450, 480, 270))
        self.resultWidget.setAutoFillBackground(False)
        self.resultWidget.setObjectName("resultWidget")
        self.horizontalLayoutWidget = QtWidgets.QWidget(main)
        self.horizontalLayoutWidget.setGeometry(QtCore.QRect(
            670, 400, 171, 51))
        self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget")
        self.peopleBox = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget)
        self.peopleBox.setContentsMargins(0, 0, 0, 0)
        self.peopleBox.setObjectName("peopleBox")
        self.peopleNo = QtWidgets.QLCDNumber(self.horizontalLayoutWidget)
        self.peopleNo.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.peopleNo.setSmallDecimalPoint(False)
        self.peopleNo.setSegmentStyle(QtWidgets.QLCDNumber.Filled)
        self.peopleNo.setObjectName("peopleNo")
        self.peopleBox.addWidget(self.peopleNo)
        self.peopleLabel = QtWidgets.QLabel(self.horizontalLayoutWidget)
        font = QtGui.QFont()
        font.setPointSize(11)
        self.peopleLabel.setFont(font)
        self.peopleLabel.setAlignment(QtCore.Qt.AlignCenter)
        self.peopleLabel.setObjectName("peopleLabel")
        self.peopleBox.addWidget(self.peopleLabel)
        self.verticalLayoutWidget_3 = QtWidgets.QWidget(main)
        self.verticalLayoutWidget_3.setGeometry(QtCore.QRect(
            50, 450, 421, 271))
        self.verticalLayoutWidget_3.setObjectName("verticalLayoutWidget_3")
        self.progressLayout = QtWidgets.QVBoxLayout(
            self.verticalLayoutWidget_3)
        self.progressLayout.setContentsMargins(0, 0, 0, 0)
        self.progressLayout.setObjectName("progressLayout")
        self.progressBar = QtWidgets.QProgressBar(self.verticalLayoutWidget_3)
        self.progressBar.setLocale(
            QtCore.QLocale(QtCore.QLocale.English,
                           QtCore.QLocale.UnitedStates))
        self.progressBar.setProperty("value", 0)
        self.progressBar.setAlignment(QtCore.Qt.AlignBottom
                                      | QtCore.Qt.AlignLeading
                                      | QtCore.Qt.AlignLeft)
        self.progressBar.setOrientation(QtCore.Qt.Horizontal)
        self.progressBar.setObjectName("progressBar")
        self.progressLayout.addWidget(self.progressBar)

        self.retranslateUi(main)
        QtCore.QMetaObject.connectSlotsByName(main)

    def retranslateUi(self, main):
        _translate = QtCore.QCoreApplication.translate
        main.setWindowTitle(_translate("main", "Dialog"))
        self.title.setText(_translate("main", "[FTP] CCC System Beta"))
        self.selectButton.setText(_translate("main", "Select Video"))
        self.submitButton.setText(_translate("main", "Submit"))
        self.heatmap.setText(_translate("main", "Heatmap"))
        self.counting.setText(_translate("main", "Counting People"))
        self.peopleLabel.setText(_translate("main", "People"))
예제 #17
0
class Ui_main():
    global name_in, out, selected, checked, zone_cutted
    checked = True


    def __init__(self):
        self.horizontalLayoutWidget_3 = QtWidgets.QWidget(main)
        self.statusTitle = QtWidgets.QLabel(main)
        self.countingLabel = QtWidgets.QLabel(main)
        self.statusLabel = QtWidgets.QLabel(main)
        self.heatmapLabel = QtWidgets.QLabel(main)
        self.mediaPlayer = QMediaPlayer(None, QMediaPlayer.VideoSurface)
        self.videoWidget = QVideoWidget(main)
        self.counting = QtWidgets.QCheckBox(self.horizontalLayoutWidget_3)
        self.heatmap = QtWidgets.QCheckBox(self.horizontalLayoutWidget_3)
        self.selectButton = QtWidgets.QPushButton(self.horizontalLayoutWidget_3)
        self.buttonLayout = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget_3)
        self.zone_cutted = False

    def setupUi(self, main):
        main.setObjectName("main")
        main.setWindowModality(QtCore.Qt.NonModal)
        main.resize(1230, 830)
        main.setFixedSize(QSize(1230, 830))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Maximum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(main.sizePolicy().hasHeightForWidth())
        main.setSizePolicy(sizePolicy)
        main.setContextMenuPolicy(QtCore.Qt.NoContextMenu)
        main.setAcceptDrops(False)
        main.setAutoFillBackground(False)
        main.setModal(False)
        #
        #
        self.horizontalLayoutWidget_3.setGeometry(QtCore.QRect(20, 420, 1191, 39))
        self.horizontalLayoutWidget_3.setObjectName("horizontalLayoutWidget_3")
        self.buttonLayout.setContentsMargins(0, 0, 0, 0)
        self.buttonLayout.setObjectName("buttonLayout")

        self.heatmapLabel.setGeometry(QtCore.QRect(420, 20, 380, 380))
        self.heatmapLabel.setFrameShape(QtWidgets.QFrame.Box)
        self.heatmapLabel.setAlignment(QtCore.Qt.AlignCenter)
        self.heatmapLabel.setObjectName("heatmapLabel")

        self.countingLabel.setGeometry(QtCore.QRect(830, 20, 380, 380))
        self.countingLabel.setFrameShape(QtWidgets.QFrame.Box)
        self.countingLabel.setAlignment(QtCore.Qt.AlignCenter)
        self.countingLabel.setObjectName("countingLabel")

        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.MinimumExpanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.selectButton.sizePolicy().hasHeightForWidth())
        self.selectButton.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setPointSize(10)
        self.selectButton.setFont(font)
        self.selectButton.setObjectName("selectButton")
        self.selectButton.clicked.connect(self.abrir)
        self.buttonLayout.addWidget(self.selectButton)

        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.heatmap.sizePolicy().hasHeightForWidth())
        self.heatmap.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.heatmap.setFont(font)
        self.heatmap.setObjectName("heatmap")
        self.buttonLayout.addWidget(self.heatmap)

        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.counting.sizePolicy().hasHeightForWidth())
        self.counting.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.counting.setFont(font)
        self.counting.setObjectName("counting")
        self.buttonLayout.addWidget(self.counting)

        spacerItem = QtWidgets.QSpacerItem(250, 20, QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
        self.buttonLayout.addItem(spacerItem)

        self.beginTimeLabel = QtWidgets.QLabel(self.horizontalLayoutWidget_3)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.beginTimeLabel.setFont(font)
        self.beginTimeLabel.setObjectName("beginTimeLabel")
        self.buttonLayout.addWidget(self.beginTimeLabel)

        self.beginTimeEdit = QtWidgets.QTimeEdit(self.horizontalLayoutWidget_3)
        self.beginTimeEdit.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
        self.beginTimeEdit.setObjectName("beginTimeEdit")
        self.buttonLayout.addWidget(self.beginTimeEdit)

        spacerItem1 = QtWidgets.QSpacerItem(50, 20, QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
        self.buttonLayout.addItem(spacerItem1)

        self.startTimeLabel = QtWidgets.QLabel(self.horizontalLayoutWidget_3)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.startTimeLabel.setFont(font)
        self.startTimeLabel.setObjectName("startTimeLabel")
        self.buttonLayout.addWidget(self.startTimeLabel)

        self.startTimeEdit = QtWidgets.QTimeEdit(self.horizontalLayoutWidget_3)
        self.startTimeEdit.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
        self.startTimeEdit.setObjectName("startTimeEdit")
        self.buttonLayout.addWidget(self.startTimeEdit)

        self.endTimeLabel = QtWidgets.QLabel(self.horizontalLayoutWidget_3)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.endTimeLabel.setFont(font)
        self.endTimeLabel.setObjectName("endTimeLabel")
        self.buttonLayout.addWidget(self.endTimeLabel)

        self.endTimeEdit = QtWidgets.QTimeEdit(self.horizontalLayoutWidget_3)
        self.endTimeEdit.setLocale(QtCore.QLocale(QtCore.QLocale.English, QtCore.QLocale.UnitedStates))
        self.endTimeEdit.setObjectName("endTimeEdit")
        self.buttonLayout.addWidget(self.endTimeEdit)

        # self.submitButton = QtWidgets.QPushButton(self.horizontalLayoutWidget_3)
        self.submitButton = QtWidgets.QPushButton(main)
        self.submitButton.setGeometry(QtCore.QRect(940, 540, 266, 41))

        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.submitButton.sizePolicy().hasHeightForWidth())
        self.submitButton.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setPointSize(10)
        self.submitButton.setFont(font)
        self.submitButton.setObjectName("submitButton")
        self.submitButton.clicked.connect(self.run_process)
        self.submitButton.setEnabled(False)
        # self.buttonLayout.addWidget(self.submitButton)
        #
        #
        self.videoWidget.setGeometry(QtCore.QRect(20, 20, 380, 380))
        self.videoWidget.setAutoFillBackground(False)
        self.videoWidget.setObjectName("videoWidget")
        #
        #
        self.statusLabel.setGeometry(QtCore.QRect(1140, 580, 71, 31))
        self.statusLabel.setScaledContents(False)
        self.statusLabel.setAlignment(QtCore.Qt.AlignCenter)
        self.statusLabel.setIndent(-1)
        self.statusLabel.setObjectName("statusLabel")

        self.statusTitle.setGeometry(QtCore.QRect(1090, 580, 61, 31))
        self.statusTitle.setScaledContents(False)
        self.statusTitle.setAlignment(QtCore.Qt.AlignCenter)
        self.statusTitle.setIndent(-1)
        self.statusTitle.setObjectName("statusTitle")
        #
        # ZONE NEW
        self.zoneButton = QtWidgets.QPushButton(main)
        self.zoneButton.setGeometry(QtCore.QRect(110, 770, 291, 37))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.MinimumExpanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.zoneButton.sizePolicy().hasHeightForWidth())
        self.zoneButton.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setPointSize(10)
        self.zoneButton.setFont(font)
        self.zoneButton.setObjectName("zoneButton")
        self.zoneButton.clicked.connect(self.select_zone)
        self.zoneButton.setEnabled(False)

        # self.outputdiButton = QtWidgets.QPushButton(main)
        # self.outputdiButton.setGeometry(QtCore.QRect(546, 482, 171, 41))
        # sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.MinimumExpanding)
        # sizePolicy.setHorizontalStretch(0)
        # sizePolicy.setVerticalStretch(0)
        # sizePolicy.setHeightForWidth(self.outputdiButton.sizePolicy().hasHeightForWidth())
        # self.outputdiButton.setSizePolicy(sizePolicy)
        # font = QtGui.QFont()
        # font.setPointSize(10)
        # self.outputdiButton.setFont(font)
        # self.outputdiButton.setObjectName("outputdiButton")
        # self.outputdiText = QtWidgets.QTextEdit(main)
        # self.outputdiText.setGeometry(QtCore.QRect(730, 490, 481, 31))
        # self.outputdiText.setObjectName("outputdiText")
        self.zoneLabel = QtWidgets.QLabel(main)
        self.zoneLabel.setGeometry(QtCore.QRect(20, 483, 480, 270))
        self.zoneLabel.setFrameShape(QtWidgets.QFrame.Box)
        self.zoneLabel.setAlignment(QtCore.Qt.AlignCenter)
        self.zoneLabel.setObjectName("zoneLabel")
        #
        #
        self.retranslateUi(main)
        QtCore.QMetaObject.connectSlotsByName(main)
        #
        #
        self.mediaPlayer.setVideoOutput(self.videoWidget)
        #
        #
        # self.setGeometry(100, 100, 500, 300)
        # self.resize(self.image.width(), self.image.height())
        # self.show()
        #
        #
        self.lastPoint = QPoint()
        self.startPoint = QPoint()
        self.drawing = False

    def retranslateUi(self, main):
        _translate = QtCore.QCoreApplication.translate
        main.setWindowTitle(_translate("main", "[FTP] Triple C System"))
        self.selectButton.setText(_translate("main", "Select Video"))
        self.heatmap.setText(_translate("main", "Heatmap"))
        self.counting.setText(_translate("main", "Counting People"))
        self.submitButton.setText(_translate("main", "Submit"))
        self.heatmapLabel.setText(_translate("main", "Heatmap"))
        self.statusLabel.setText(_translate("main", "Not Ready"))
        self.countingLabel.setText(_translate("main", "Counting People"))
        self.statusTitle.setText(_translate("main", "Status:"))
        self.beginTimeLabel.setText(_translate("main", "Begin Time:"))
        self.startTimeLabel.setText(_translate("main", "Start at:"))
        self.endTimeLabel.setText(_translate("main", "End at:"))
        self.beginTimeEdit.setDisplayFormat(_translate("main", "HH:mm:ss"))
        self.startTimeEdit.setDisplayFormat(_translate("main", "HH:mm:ss"))
        self.endTimeEdit.setDisplayFormat(_translate("main", "HH:mm:ss"))

        self.zoneButton.setText(_translate("main", "Zone Separate Analysis"))
        # self.outputdiButton.setText(_translate("main", "Output Directory"))
        self.zoneLabel.setText(_translate("main", "Zone Separate Analysis"))

    def abrir(self):
        global name_in
        selected_file, _ = QFileDialog.getOpenFileName(None, "Select a video", ".",
                                                       "Video Files (*.mp4 *.flv *.ts *.mts *.avi *.mpg)")
        if selected_file != '':
            self.mediaPlayer.setMedia(
                QMediaContent(QUrl.fromLocalFile(selected_file)))
            self.play()
            name_of_file = QFileInfo(selected_file).fileName()
            self.selected = name_of_file
            self.name_in = name_of_file
            if QFileInfo(selected_file).path() != QDir.currentPath():
                shutil.copy(selected_file, os.getcwd() + "\\" + name_of_file)

            f = open("zone_position.txt", "w+")

            self.statusLabel.setText("Ready")
            self.submitButton.setEnabled(True)
            self.zoneButton.setEnabled(True)
            self.heatmapLabel.clear()
            self.heatmapLabel.setText("Heatmap")

            self.countingLabel.clear()
            self.countingLabel.setText("Counting people")

            clip = VideoFileClip(name_of_file)
            clip.save_frame("selected_zone.jpg", 1)

            w = self.zoneLabel.width()
            h = self.zoneLabel.height()

            pixmap = QPixmap("selected_zone.jpg")
            pixmap = pixmap.scaled(w, h, QtCore.Qt.KeepAspectRatio)

            self.zoneLabel.setPixmap(pixmap)

            # self.select_zone()

    def play(self):
        self.mediaPlayer.play()

    def run_process(self):
        if (self.beginTimeEdit.time().toString() > self.startTimeEdit.time().toString()) or (self.beginTimeEdit.time().toString() > self.endTimeEdit.time().toString()):
            self.startTimeEdit.setTime(self.beginTimeEdit.time())
            self.endTimeEdit.setTime(self.beginTimeEdit.time())
            print(1)
            self.statusLabel.setText("Time Error")
        else:
            if self.startTimeEdit.time().toString() > self.endTimeEdit.time().toString():
                self.endTimeEdit.setTime(self.startTimeEdit.time())
                print(2)
                self.statusLabel.setText("Time Error")
            else:
                if (self.beginTimeEdit.time().toString() != self.endTimeEdit.time().toString()) or (self.startTimeEdit.time().toString() != self.endTimeEdit.time().toString()):
                    self.write_time()
                    self.statusLabel.setText("Converting")
                    self.cut_video()
                    self.statusLabel.setText("Processing")

                command = "conda activate yolov3 && python ftp_combine01.py --video " + self.name_in
                os.system(command)
                self.show_video()

                if self.heatmap.isChecked():
                    self.show_heatmap()
                if self.counting.isChecked():
                    self.show_counting()

                self.statusLabel.setText("Complete")
                self.selectButton.setEnabled(True)
                self.submitButton.setEnabled(False)

    def show_video(self):
        directory = QDir(os.getcwd())
        directory.setFilter(QDir.Files | QDir.NoDotDot | QDir.NoDotAndDotDot)
        directory.setSorting(QDir.Time)
        set_filter = ["*.avi"]
        directory.setNameFilters(set_filter)

        for show in directory.entryInfoList():
            print("%s %s" % (show.size(), show.fileName()))
            out = show.fileName()
            break
        # print(1)
        if self.zone_cutted:
            # print(2)
            x1, y1, x2, y2 = get_zone_position()

            clip = VideoFileClip(out)
            cut_video = crop(clip, x1, y1, x2, y2)

            name_of_file = QFileInfo(out).baseName() + "_zone.avi"
            cut_video.write_videofile(name_of_file, codec='mpeg4', audio=False)

        else:
            # print(3)
            name_of_file = out
        # print(4)
        self.mediaPlayer.setMedia(
            QMediaContent(QUrl.fromLocalFile(os.getcwd() + "\\" + name_of_file))
        )
        # print(5)
        # self.mediaPlayer.setPlaybackRate()
        self.play()
        # print(6)

    def show_heatmap(self):
        # print("a")
        directory = QDir(os.getcwd())
        directory.setFilter(QDir.Files | QDir.NoDotDot | QDir.NoDotAndDotDot)
        directory.setSorting(QDir.Time)
        set_filter = ["*.jpg"]
        directory.setNameFilters(set_filter)
        # print("b")
        for show in directory.entryInfoList():
            print("%s %s" % (show.size(), show.fileName()))
            if "heatmap" in show.fileName():
                out = show.fileName()
                break
        # print("c")
        w = self.heatmapLabel.width()
        h = self.heatmapLabel.height()
        # print("d")
        # print("%r", self.zone_cutted)
        if self.zone_cutted:
            x1, y1, x2, y2 = get_zone_position()

            imageObject = Image.open(out)
            cropped = imageObject.crop((x1, y1, x2, y2))
            name_of_file = QFileInfo(out).baseName() + "_zone.jpg"
            cropped.save(name_of_file)

            pixmap = QPixmap(name_of_file)
        else:
            pixmap = QPixmap(out)
        # print("e")
        pixmap = pixmap.scaled(w, h, QtCore.Qt.KeepAspectRatio)
        self.heatmapLabel.setPixmap(pixmap)
        # print("f")

    def show_counting(self):
        directory = QDir(os.getcwd())
        directory.setFilter(QDir.Files | QDir.NoDotDot | QDir.NoDotAndDotDot)
        directory.setSorting(QDir.Time)
        set_filter = ["*.jpg"]
        directory.setNameFilters(set_filter)

        for show in directory.entryInfoList():
            print("%s %s" % (show.size(), show.fileName()))
            if "graph" in show.fileName():
                out = show.fileName()
                break

        w = self.countingLabel.width()
        h = self.countingLabel.height()

        pixmap = QPixmap(out)
        pixmap = pixmap.scaled(w, h, QtCore.Qt.KeepAspectRatio)
        self.countingLabel.setPixmap(pixmap)

    def cut_video(self):
        file = QFileInfo(self.selected).fileName()
        clip = VideoFileClip(file)
        starttime_hour = int(self.startTimeEdit.time().hour()) - int(self.beginTimeEdit.time().hour())
        starttime_minute = int(self.startTimeEdit.time().minute()) - int(self.beginTimeEdit.time().minute())
        starttime_second = int(self.startTimeEdit.time().second()) - int(self.beginTimeEdit.time().second())
        endtime_hour = int(self.endTimeEdit.time().hour()) - int(self.beginTimeEdit.time().hour())
        endtime_minute = int(self.endTimeEdit.time().minute()) - int(self.beginTimeEdit.time().minute())
        endtime_second = int(self.endTimeEdit.time().second()) - int(self.beginTimeEdit.time().second())

        cut_video = clip.subclip((starttime_hour, starttime_minute, starttime_second),
                                 (endtime_hour, endtime_minute, endtime_second))

        # m = open('zone_position.txt', 'r').read()
        # lines = m.split('\n')
        # x = []
        # y = []
        # for line in lines:
        #     if len(line) > 1:
        #         x0, y0 = line.split(',')
        #         x.append(x0)
        #         y.append(y0)
        # x1 = x[0]
        # x2 = x[1]
        # y1 = y[0]
        # y2 = y[1]
        #
        # cut_video = crop(cut_video, x1, y1, x2, y2)

        name_of_file = QFileInfo(self.selected).baseName() + "_cut.avi"
        self.name_in = str(name_of_file)
        cut_video.write_videofile(name_of_file, codec='mpeg4', audio=False)

    def write_time(self):
        h = int(self.startTimeEdit.time().hour())
        m = int(self.startTimeEdit.time().minute())
        s = int(self.startTimeEdit.time().second())
        x = "1970/01/01 " + str(h) + ":" + str(m) + ":" + str(s)
        x1 = str(h) + ":" + str(m) + ":" + str(s)
        fun = time.strptime(x, "%Y/%m/%d %H:%M:%S")
        y = calendar.timegm(fun)
        f = open("soul.txt", "w+")
        f.write("%s,%d\r\n" % (x1, y))

    def select_zone(self):
        file = QFileInfo(self.selected).fileName()
        clip = VideoFileClip(file)
        clip.save_frame("selected_zone.jpg", 1)

        self.zone_cutted = True

        # self.image = QPixmap('cutzone.jpg')
        # self.zone_pic = self.image.scaled(self.image.size(), QtCore.Qt.KeepAspectRatio)
        # self.zoneLabel.setScaledContents(True)
        # self.zoneLabel.setPixmap(self.zone_pic)

        command = "python cut_zone.py"
        os.system(command)

        w = self.zoneLabel.width()
        h = self.zoneLabel.height()

        pixmap = QPixmap("cropped_zone.jpg")
        pixmap = pixmap.scaled(w, h, QtCore.Qt.KeepAspectRatio)

        # time.sleep(5)

        self.zoneLabel.setPixmap(pixmap)
예제 #18
0
class Ui_main(object):
    def setupUi(self, main):
        main.setObjectName("main")
        main.setWindowModality(QtCore.Qt.NonModal)
        main.resize(1230, 500)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum,
                                           QtWidgets.QSizePolicy.Maximum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(main.sizePolicy().hasHeightForWidth())
        main.setSizePolicy(sizePolicy)
        main.setContextMenuPolicy(QtCore.Qt.NoContextMenu)
        main.setAcceptDrops(False)
        main.setAutoFillBackground(False)
        main.setModal(False)
        self.videoWidget = QVideoWidget(main)
        self.videoWidget.setGeometry(QtCore.QRect(20, 20, 380, 380))
        self.videoWidget.setAutoFillBackground(False)
        self.videoWidget.setObjectName("videoWidget")
        self.heatmapLabel = QtWidgets.QLabel(main)
        self.heatmapLabel.setGeometry(QtCore.QRect(420, 20, 380, 380))
        self.heatmapLabel.setFrameShape(QtWidgets.QFrame.Box)
        self.heatmapLabel.setAlignment(QtCore.Qt.AlignCenter)
        self.heatmapLabel.setObjectName("heatmapLabel")
        self.statusLabel = QtWidgets.QLabel(main)
        self.statusLabel.setGeometry(QtCore.QRect(1140, 460, 70, 30))
        self.statusLabel.setScaledContents(False)
        self.statusLabel.setAlignment(QtCore.Qt.AlignCenter)
        self.statusLabel.setIndent(-1)
        self.statusLabel.setObjectName("statusLabel")
        self.countingLabel = QtWidgets.QLabel(main)
        self.countingLabel.setGeometry(QtCore.QRect(830, 20, 380, 380))
        self.countingLabel.setFrameShape(QtWidgets.QFrame.Box)
        self.countingLabel.setAlignment(QtCore.Qt.AlignCenter)
        self.countingLabel.setObjectName("countingLabel")
        self.horizontalLayoutWidget_3 = QtWidgets.QWidget(main)
        self.horizontalLayoutWidget_3.setGeometry(
            QtCore.QRect(20, 420, 1191, 39))
        self.horizontalLayoutWidget_3.setObjectName("horizontalLayoutWidget_3")
        self.buttonLayout = QtWidgets.QHBoxLayout(
            self.horizontalLayoutWidget_3)
        self.buttonLayout.setContentsMargins(0, 0, 0, 0)
        self.buttonLayout.setObjectName("buttonLayout")
        self.selectButton = QtWidgets.QPushButton(
            self.horizontalLayoutWidget_3)
        sizePolicy = QtWidgets.QSizePolicy(
            QtWidgets.QSizePolicy.Expanding,
            QtWidgets.QSizePolicy.MinimumExpanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.selectButton.sizePolicy().hasHeightForWidth())
        self.selectButton.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setPointSize(10)
        self.selectButton.setFont(font)
        self.selectButton.setObjectName("selectButton")
        self.buttonLayout.addWidget(self.selectButton)
        self.heatmap = QtWidgets.QCheckBox(self.horizontalLayoutWidget_3)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.heatmap.sizePolicy().hasHeightForWidth())
        self.heatmap.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.heatmap.setFont(font)
        self.heatmap.setObjectName("heatmap")
        self.buttonLayout.addWidget(self.heatmap)
        self.counting = QtWidgets.QCheckBox(self.horizontalLayoutWidget_3)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.counting.sizePolicy().hasHeightForWidth())
        self.counting.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.counting.setFont(font)
        self.counting.setObjectName("counting")
        self.buttonLayout.addWidget(self.counting)
        spacerItem = QtWidgets.QSpacerItem(600, 20,
                                           QtWidgets.QSizePolicy.Preferred,
                                           QtWidgets.QSizePolicy.Minimum)
        self.buttonLayout.addItem(spacerItem)
        self.submitButton = QtWidgets.QPushButton(
            self.horizontalLayoutWidget_3)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.submitButton.sizePolicy().hasHeightForWidth())
        self.submitButton.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setPointSize(10)
        self.submitButton.setFont(font)
        self.submitButton.setObjectName("submitButton")
        self.buttonLayout.addWidget(self.submitButton)
        self.statusTitle = QtWidgets.QLabel(main)
        self.statusTitle.setGeometry(QtCore.QRect(1090, 460, 61, 31))
        self.statusTitle.setScaledContents(False)
        self.statusTitle.setAlignment(QtCore.Qt.AlignCenter)
        self.statusTitle.setIndent(-1)
        self.statusTitle.setObjectName("statusTitle")

        self.retranslateUi(main)
        QtCore.QMetaObject.connectSlotsByName(main)

    def retranslateUi(self, main):
        _translate = QtCore.QCoreApplication.translate
        main.setWindowTitle(_translate("main", "[FTP] Triple C"))
        self.heatmapLabel.setText(_translate("main", "Heatmap"))
        self.statusLabel.setText(_translate("main", "Not Ready"))
        self.countingLabel.setText(_translate("main", "Counting People"))
        self.selectButton.setText(_translate("main", "Select Video"))
        self.heatmap.setText(_translate("main", "Heatmap"))
        self.counting.setText(_translate("main", "Counting People"))
        self.submitButton.setText(_translate("main", "Submit"))
        self.statusTitle.setText(_translate("main", "Status:"))
예제 #19
0
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(676, 409)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.button_play_pause = QtWidgets.QPushButton(self.centralwidget)
        self.button_play_pause.setGeometry(QtCore.QRect(20, 290, 91, 31))
        self.button_play_pause.setObjectName("button_play_pause")
        self.video_slider = QtWidgets.QSlider(self.centralwidget)
        self.video_slider.setGeometry(QtCore.QRect(110, 290, 281, 22))
        self.video_slider.setOrientation(QtCore.Qt.Horizontal)
        self.video_slider.setObjectName("video_slider")
        self.video_widget = QVideoWidget(self.centralwidget)
        self.video_widget.setGeometry(QtCore.QRect(20, 50, 371, 231))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.video_widget.sizePolicy().hasHeightForWidth())
        self.video_widget.setSizePolicy(sizePolicy)
        self.video_widget.setBaseSize(QtCore.QSize(50, 100))
        self.video_widget.setObjectName("video_widget")
        self.label_info = QtWidgets.QTextBrowser(self.centralwidget)
        self.label_info.setGeometry(QtCore.QRect(410, 10, 256, 141))
        self.label_info.setBaseSize(QtCore.QSize(50, 50))
        self.label_info.setObjectName("label_info")
        self.button_load = QtWidgets.QPushButton(self.centralwidget)
        self.button_load.setGeometry(QtCore.QRect(310, 20, 80, 31))
        self.button_load.setObjectName("button_load")
        self.file_info = QtWidgets.QTextBrowser(self.centralwidget)
        self.file_info.setGeometry(QtCore.QRect(20, 20, 291, 21))
        self.file_info.setObjectName("file_info")
        self.original_video_widget = QVideoWidget(self.centralwidget)
        self.original_video_widget.setGeometry(QtCore.QRect(
            410, 160, 251, 191))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.original_video_widget.sizePolicy().hasHeightForWidth())
        self.original_video_widget.setSizePolicy(sizePolicy)
        self.original_video_widget.setBaseSize(QtCore.QSize(50, 100))
        self.original_video_widget.setObjectName("original_video_widget")
        self.button_track = QtWidgets.QPushButton(self.centralwidget)
        self.button_track.setGeometry(QtCore.QRect(170, 340, 81, 31))
        self.button_track.setObjectName("button_track")
        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.button_play_pause.setText(_translate("MainWindow", "Play/Pause"))
        self.button_load.setText(_translate("MainWindow", "Load"))
        self.file_info.setHtml(
            _translate(
                "MainWindow",
                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
                "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
                "p, li { white-space: pre-wrap; }\n"
                "</style></head><body style=\" font-family:\'.SF NS Text\'; font-size:13pt; font-weight:400; font-style:normal;\">\n"
                "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-style:italic;\">No file loaded...</span></p></body></html>"
            ))
        self.button_track.setText(_translate("MainWindow", "Track"))
예제 #20
0
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.setEnabled(True)
        MainWindow.resize(843, 818)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
        MainWindow.setSizePolicy(sizePolicy)
        MainWindow.setMinimumSize(QtCore.QSize(843, 818))
        MainWindow.setMaximumSize(QtCore.QSize(843, 818))
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("../../../Downloads/weightlifting.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        MainWindow.setWindowIcon(icon)
        MainWindow.setAutoFillBackground(False)
        MainWindow.setStyleSheet("background-color: rgb(246, 255, 231);")
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setStyleSheet("background-color: rgb(252, 252, 252);")
        self.centralwidget.setObjectName("centralwidget")
        self.stackedWidget = QtWidgets.QStackedWidget(self.centralwidget)
        self.stackedWidget.setGeometry(QtCore.QRect(30, 20, 761, 771))
        self.stackedWidget.setStyleSheet("background-color: rgb(252, 252, 252);")
        self.stackedWidget.setObjectName("stackedWidget")
        self.page = QtWidgets.QWidget()
        self.page.setObjectName("page")
        self.label = QtWidgets.QLabel(self.page)
        self.label.setGeometry(QtCore.QRect(-10, 20, 791, 81))
        self.label.setStyleSheet("\n"
"font-family:Tahoma, Helvetica, Arial, Sans-Serif;\n"
"text-align: center;\n"
"font-size: 36px;\n"
"color: #222;\n"
"text-shadow: 0px 2px 3px black;\n"
"\n"
"\n"
"\n"
"")
        self.label.setObjectName("label")
        self.pushButton = QtWidgets.QPushButton(self.page)
        self.pushButton.setGeometry(QtCore.QRect(230, 570, 321, 181))
        self.pushButton.setStyleSheet("QPushButton{\n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(180, 17, 17), stop:1 rgba(255, 144, 146));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 24px;\n"
"padding:10px;\n"
"}\n"
"QPushButton:hover {   \n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 144, 146), stop:1 rgba(180, 17, 17));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 26px;\n"
"padding:10px;\n"
"}\n"
"\n"
"QPushButton:pressed {   \n"
"background-color:rgb(255, 144, 146);\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:2px;\n"
"border-radius:14px;\n"
"border-color:rgb(180, 17, 17);\n"
"font:bold 26px;\n"
"padding:10px;\n"
"}\n"
"")
        self.pushButton.setObjectName("pushButton")
        self.pushButton_2 = QtWidgets.QPushButton(self.page)
        self.pushButton_2.setGeometry(QtCore.QRect(230, 170, 321, 181))
        self.pushButton_2.setStyleSheet("QPushButton{\n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(180, 17, 17), stop:1 rgba(255, 144, 146));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 24px;\n"
"padding:10px;\n"
"}\n"
"QPushButton:hover {   \n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 144, 146), stop:1 rgba(180, 17, 17));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 26px;\n"
"padding:10px;\n"
"}\n"
"\n"
"QPushButton:pressed {   \n"
"background-color:rgb(255, 144, 146);\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:2px;\n"
"border-radius:14px;\n"
"border-color:rgb(180, 17, 17);\n"
"font:bold 26px;\n"
"padding:10px;\n"
"}\n"
"\n"
"")
        self.pushButton_2.setObjectName("pushButton_2")
        self.pushButton_13 = QtWidgets.QPushButton(self.page)
        self.pushButton_13.setGeometry(QtCore.QRect(230, 370, 321, 181))
        self.pushButton_13.setStyleSheet("QPushButton{\n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(180, 17, 17), stop:1 rgba(255, 144, 146));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 24px;\n"
"padding:10px;\n"
"}\n"
"QPushButton:hover {   \n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 144, 146), stop:1 rgba(180, 17, 17));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 26px;\n"
"padding:10px;\n"
"}\n"
"\n"
"QPushButton:pressed {   \n"
"background-color:rgb(255, 144, 146);\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:2px;\n"
"border-radius:14px;\n"
"border-color:rgb(180, 17, 17);\n"
"font:bold 26px;\n"
"padding:10px;\n"
"}\n"
"\n"
"")
        self.pushButton_13.setObjectName("pushButton_13")
        self.stackedWidget.addWidget(self.page)
        self.page_6 = QtWidgets.QWidget()
        self.page_6.setObjectName("page_6")
        self.label_13 = QtWidgets.QLabel(self.page_6)
        self.label_13.setGeometry(QtCore.QRect(-10, 30, 771, 61))
        self.label_13.setStyleSheet("text-align: center;\n"
"font-size: 36px;\n"
"color: #222;\n"
"text-shadow: 0px 2px 3px black;")
        self.label_13.setObjectName("label_13")
        self.image_label_11 = QtWidgets.QLabel(self.page_6)
        self.image_label_11.setGeometry(QtCore.QRect(60, 110, 661, 511))
        self.image_label_11.setAutoFillBackground(False)
        self.image_label_11.setStyleSheet("\n"
"background-color: black;\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:gray;\n"
"font:bold 50px;\n"
"padding:10px;\n"
"text-align:center\n"
"")
        self.image_label_11.setLineWidth(3)
        self.image_label_11.setMidLineWidth(2)
        self.image_label_11.setAlignment(QtCore.Qt.AlignCenter)
        self.image_label_11.setObjectName("image_label_11")
        self.pushButton19_4 = QtWidgets.QPushButton(self.page_6)
        self.pushButton19_4.setGeometry(QtCore.QRect(200, 650, 181, 101))
        self.pushButton19_4.setStyleSheet("QPushButton{\n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(180, 17, 17), stop:1 rgba(255, 144, 146));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"QPushButton:hover {   \n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 144, 146), stop:1 rgba(180, 17, 17));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 18px;\n"
"padding:10px;\n"
"}\n"
"\n"
"QPushButton:pressed {   \n"
"background-color:rgb(255, 144, 146);\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:2px;\n"
"border-radius:14px;\n"
"border-color:rgb(180, 17, 17);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"")
        self.pushButton19_4.setObjectName("pushButton19_4")
        self.pushButton20_7 = QtWidgets.QPushButton(self.page_6)
        self.pushButton20_7.setGeometry(QtCore.QRect(410, 650, 181, 101))
        self.pushButton20_7.setStyleSheet("QPushButton{\n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(180, 17, 17), stop:1 rgba(255, 144, 146));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"QPushButton:hover {   \n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 144, 146), stop:1 rgba(180, 17, 17));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 18px;\n"
"padding:10px;\n"
"}\n"
"\n"
"QPushButton:pressed {   \n"
"background-color:rgb(255, 144, 146);\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:2px;\n"
"border-radius:14px;\n"
"border-color:rgb(180, 17, 17);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"")
        self.pushButton20_7.setObjectName("pushButton20_7")
        self.stackedWidget.addWidget(self.page_6)
        self.page_2 = QtWidgets.QWidget()
        self.page_2.setObjectName("page_2")
        self.image_label = QtWidgets.QLabel(self.page_2)
        self.image_label.setGeometry(QtCore.QRect(60, 120, 661, 511))
        self.image_label.setAutoFillBackground(False)
        self.image_label.setStyleSheet("\n"
"background-color: black;\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:gray;\n"
"font:bold 16px;\n"
"padding:10px")
        self.image_label.setLineWidth(3)
        self.image_label.setMidLineWidth(2)
        self.image_label.setText("")
        self.image_label.setObjectName("image_label")
        self.pushButton_3 = QtWidgets.QPushButton(self.page_2)
        self.pushButton_3.setGeometry(QtCore.QRect(80, 660, 181, 101))
        self.pushButton_3.setStyleSheet("QPushButton{\n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(180, 17, 17), stop:1 rgba(255, 144, 146));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"QPushButton:hover {   \n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 144, 146), stop:1 rgba(180, 17, 17));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 18px;\n"
"padding:10px;\n"
"}\n"
"\n"
"QPushButton:pressed {   \n"
"background-color:rgb(255, 144, 146);\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:2px;\n"
"border-radius:14px;\n"
"border-color:rgb(180, 17, 17);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"")
        self.pushButton_3.setObjectName("pushButton_3")
        self.pushButton_4 = QtWidgets.QPushButton(self.page_2)
        self.pushButton_4.setGeometry(QtCore.QRect(300, 660, 181, 101))
        self.pushButton_4.setStyleSheet("QPushButton{\n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(180, 17, 17), stop:1 rgba(255, 144, 146));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"QPushButton:hover {   \n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 144, 146), stop:1 rgba(180, 17, 17));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 18px;\n"
"padding:10px;\n"
"}\n"
"\n"
"QPushButton:pressed {   \n"
"background-color:rgb(255, 144, 146);\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:2px;\n"
"border-radius:14px;\n"
"border-color:rgb(180, 17, 17);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"")
        self.pushButton_4.setObjectName("pushButton_4")
        self.pushButton_5 = QtWidgets.QPushButton(self.page_2)
        self.pushButton_5.setGeometry(QtCore.QRect(520, 660, 181, 101))
        self.pushButton_5.setStyleSheet("QPushButton{\n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(180, 17, 17), stop:1 rgba(255, 144, 146));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"QPushButton:hover {   \n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 144, 146), stop:1 rgba(180, 17, 17));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 18px;\n"
"padding:10px;\n"
"}\n"
"\n"
"QPushButton:pressed {   \n"
"background-color:rgb(255, 144, 146);\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:2px;\n"
"border-radius:14px;\n"
"border-color:rgb(180, 17, 17);\n"
"font:bold 14px;\n"
"padding:10px;\n"
"}\n"
"")
        self.pushButton_5.setObjectName("pushButton_5")
        self.label6_2 = QtWidgets.QLabel(self.page_2)
        self.label6_2.setGeometry(QtCore.QRect(0, 40, 761, 61))
        font = QtGui.QFont()
        font.setPointSize(-1)
        self.label6_2.setFont(font)
        self.label6_2.setStyleSheet("QLabel{\n"
"\n"
"text-align: center;\n"
"font-size: 36px;\n"
"color: #222;\n"
"text-shadow: 0px 2px 3px black;\n"
"}\n"
"\n"
"\n"
"")
        self.label6_2.setAlignment(QtCore.Qt.AlignCenter)
        self.label6_2.setObjectName("label6_2")
        self.stackedWidget.addWidget(self.page_2)
        self.page7 = QtWidgets.QWidget()
        self.page7.setObjectName("page7")
        self.label_11 = QtWidgets.QLabel(self.page7)
        self.label_11.setGeometry(QtCore.QRect(0, 40, 771, 61))
        self.label_11.setStyleSheet("text-align: center;\n"
"font-size: 36px;\n"
"color: #222;\n"
"text-shadow: 0px 2px 3px black;")
        self.label_11.setObjectName("label_11")
        self.pushButton19 = QtWidgets.QPushButton(self.page7)
        self.pushButton19.setGeometry(QtCore.QRect(300, 660, 181, 101))
        self.pushButton19.setStyleSheet("QPushButton{\n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(180, 17, 17), stop:1 rgba(255, 144, 146));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"QPushButton:hover {   \n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 144, 146), stop:1 rgba(180, 17, 17));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 18px;\n"
"padding:10px;\n"
"}\n"
"\n"
"QPushButton:pressed {   \n"
"background-color:rgb(255, 144, 146);\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:2px;\n"
"border-radius:14px;\n"
"border-color:rgb(180, 17, 17);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"")
        self.pushButton19.setObjectName("pushButton19")
        self.pushButton20 = QtWidgets.QPushButton(self.page7)
        self.pushButton20.setGeometry(QtCore.QRect(520, 660, 181, 101))
        self.pushButton20.setStyleSheet("QPushButton{\n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(180, 17, 17), stop:1 rgba(255, 144, 146));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"QPushButton:hover {   \n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 144, 146), stop:1 rgba(180, 17, 17));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 18px;\n"
"padding:10px;\n"
"}\n"
"\n"
"QPushButton:pressed {   \n"
"background-color:rgb(255, 144, 146);\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:2px;\n"
"border-radius:14px;\n"
"border-color:rgb(180, 17, 17);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"")
        self.pushButton20.setObjectName("pushButton20")
        self.video_label = QVideoWidget(self.page7)
        self.video_label.setGeometry(QtCore.QRect(60, 120, 661, 511))
        self.video_label.setAutoFillBackground(False)
        self.video_label.setStyleSheet("\n"
"background-color: black;\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:gray;\n"
"font:bold 16px;\n"
"padding:10px")
        self.video_label.setObjectName("image_label_8")
        self.pushButton20_2 = QtWidgets.QPushButton(self.page7)
        self.pushButton20_2.setGeometry(QtCore.QRect(80, 660, 181, 101))
        self.pushButton20_2.setStyleSheet("QPushButton{\n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(180, 17, 17), stop:1 rgba(255, 144, 146));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"QPushButton:hover {   \n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 144, 146), stop:1 rgba(180, 17, 17));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 18px;\n"
"padding:10px;\n"
"}\n"
"\n"
"QPushButton:pressed {   \n"
"background-color:rgb(255, 144, 146);\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:2px;\n"
"border-radius:14px;\n"
"border-color:rgb(180, 17, 17);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"")
        self.pushButton20_2.setObjectName("pushButton20_2")
        self.stackedWidget.addWidget(self.page7)
        self.page_3 = QtWidgets.QWidget()
        self.page_3.setObjectName("page_3")
        self.label_3 = QtWidgets.QLabel(self.page_3)
        self.label_3.setGeometry(QtCore.QRect(-10, 50, 781, 61))
        self.label_3.setStyleSheet("text-align: center;\n"
"font-size: 36px;\n"
"color: #222;\n"
"text-shadow: 0px 2px 3px black;")
        self.label_3.setAlignment(QtCore.Qt.AlignCenter)
        self.label_3.setObjectName("label_3")
        self.pushButton_9 = QtWidgets.QPushButton(self.page_3)
        self.pushButton_9.setGeometry(QtCore.QRect(80, 160, 271, 221))
        self.pushButton_9.setStyleSheet("QPushButton{\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(255, 255, 0), stop:1 rgb(255, 255, 203));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 20px;\n"
"color: black;\n"
"padding:10px;}\n"
"\n"
"QPushButton:hover {   \n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(255, 255, 203), stop:1 rgb(255, 255, 0));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 24px;\n"
"padding:10px;\n"
"}\n"
"\n"
"QPushButton:pressed {   \n"
"background-color:rgb(255, 255, 203);\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:2px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 255, 203);\n"
"font:bold 24px;\n"
"padding:10px;\n"
"}\n"
"\n"
"")
        self.pushButton_9.setObjectName("pushButton_9")
        self.pushButton_6 = QtWidgets.QPushButton(self.page_3)
        self.pushButton_6.setGeometry(QtCore.QRect(80, 460, 271, 221))
        self.pushButton_6.setStyleSheet("QPushButton{\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(255, 61, 236), stop:1 rgb(255, 221, 254));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 20px;\n"
"color: black;\n"
"padding:10px}\n"
"\n"
"QPushButton:hover {   \n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(255, 221, 254) , stop:1 rgb(255, 61, 236));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(198, 255, 255);\n"
"font:bold 24px;\n"
"padding:10px;\n"
"}\n"
"\n"
"QPushButton:pressed {   \n"
"background-color:rgb(255, 221, 254);\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:2px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 221, 254);\n"
"font:bold 24px;\n"
"padding:10px;\n"
"}\n"
"")
        self.pushButton_6.setObjectName("pushButton_6")
        self.pushButton_7 = QtWidgets.QPushButton(self.page_3)
        self.pushButton_7.setGeometry(QtCore.QRect(420, 160, 271, 221))
        self.pushButton_7.setStyleSheet("QPushButton{\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(75, 252, 255), stop:1 rgb(198, 255, 255));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 20px;\n"
"color: black;\n"
"padding:10px}\n"
"\n"
"QPushButton:hover {   \n"
"background-color:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(198, 255, 255), stop:1 rgb(75, 252, 255));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(198, 255, 255);\n"
"font:bold 24px;\n"
"padding:10px;\n"
"}\n"
"\n"
"QPushButton:pressed {   \n"
"background-color:rgb(198, 255, 255);\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:2px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 255, 203);\n"
"font:bold 24px;\n"
"padding:10px;\n"
"}\n"
"")
        self.pushButton_7.setObjectName("pushButton_7")
        self.pushButton_8 = QtWidgets.QPushButton(self.page_3)
        self.pushButton_8.setGeometry(QtCore.QRect(420, 460, 271, 221))
        self.pushButton_8.setStyleSheet("QPushButton{\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(17, 220, 51), stop:1 rgb(210, 255, 223));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 20px;\n"
"color: black;\n"
"padding:10px;}\n"
"\n"
"QPushButton:hover {   \n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(210, 255, 223) , stop:1 rgb(17, 220, 51) );\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(198, 255, 255);\n"
"font:bold 24px;\n"
"padding:10px;\n"
"}\n"
"\n"
"QPushButton:pressed {   \n"
"background-color:rgb(210, 255, 223);\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:2px;\n"
"border-radius:24px;\n"
"border-color:rgb(255, 221, 254);\n"
"font:bold 16px;}")
        self.pushButton_8.setObjectName("pushButton_8")
        self.stackedWidget.addWidget(self.page_3)
        self.page_4 = QtWidgets.QWidget()
        self.page_4.setObjectName("page_4")
        self.label_4 = QtWidgets.QLabel(self.page_4)
        self.label_4.setGeometry(QtCore.QRect(0, 40, 761, 61))
        font = QtGui.QFont()
        font.setPointSize(-1)
        self.label_4.setFont(font)
        self.label_4.setStyleSheet("QLabel{\n"
"\n"
"text-align: center;\n"
"font-size: 36px;\n"
"color: #222;\n"
"text-shadow: 0px 2px 3px black;\n"
"}\n"
"\n"
"\n"
"")
        self.label_4.setAlignment(QtCore.Qt.AlignCenter)
        self.label_4.setObjectName("label_4")
        self.image_label_2 = QtWidgets.QLabel(self.page_4)
        self.image_label_2.setGeometry(QtCore.QRect(60, 120, 661, 511))
        self.image_label_2.setAutoFillBackground(False)
        self.image_label_2.setStyleSheet("\n"
"background-color: black;\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:gray;\n"
"font:bold 16px;\n"
"padding:10px")
        self.image_label_2.setLineWidth(3)
        self.image_label_2.setMidLineWidth(2)
        self.image_label_2.setText("")
        self.image_label_2.setObjectName("image_label_2")
        self.pushButton_10 = QtWidgets.QPushButton(self.page_4)
        self.pushButton_10.setGeometry(QtCore.QRect(80, 660, 181, 101))
        self.pushButton_10.setStyleSheet("QPushButton{\n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(180, 17, 17), stop:1 rgba(255, 144, 146));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"QPushButton:hover {   \n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 144, 146), stop:1 rgba(180, 17, 17));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 18px;\n"
"padding:10px;\n"
"}\n"
"\n"
"QPushButton:pressed {   \n"
"background-color:rgb(255, 144, 146);\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:2px;\n"
"border-radius:14px;\n"
"border-color:rgb(180, 17, 17);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"")
        self.pushButton_10.setObjectName("pushButton_10")
        self.pushButton_11 = QtWidgets.QPushButton(self.page_4)
        self.pushButton_11.setGeometry(QtCore.QRect(300, 660, 181, 101))
        font = QtGui.QFont()
        font.setPointSize(-1)
        font.setBold(True)
        font.setItalic(False)
        font.setWeight(75)
        self.pushButton_11.setFont(font)
        self.pushButton_11.setStyleSheet("QPushButton{\n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(180, 17, 17), stop:1 rgba(255, 144, 146));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"QPushButton:hover {   \n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 144, 146), stop:1 rgba(180, 17, 17));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 18px;\n"
"padding:10px;\n"
"}\n"
"\n"
"QPushButton:pressed {   \n"
"background-color:rgb(255, 144, 146);\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:2px;\n"
"border-radius:14px;\n"
"border-color:rgb(180, 17, 17);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"")
        self.pushButton_11.setObjectName("pushButton_11")
        self.pushButton_12 = QtWidgets.QPushButton(self.page_4)
        self.pushButton_12.setGeometry(QtCore.QRect(520, 660, 181, 101))
        self.pushButton_12.setStyleSheet("QPushButton{\n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(180, 17, 17), stop:1 rgba(255, 144, 146));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"QPushButton:hover {   \n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 144, 146), stop:1 rgba(180, 17, 17));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 18px;\n"
"padding:10px;\n"
"}\n"
"\n"
"QPushButton:pressed {   \n"
"background-color:rgb(255, 144, 146);\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:2px;\n"
"border-radius:14px;\n"
"border-color:rgb(180, 17, 17);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"")
        self.pushButton_12.setObjectName("pushButton_12")
        self.stackedWidget.addWidget(self.page_4)
        self.page_5 = QtWidgets.QWidget()
        self.page_5.setObjectName("page_5")
        self.label_5 = QtWidgets.QLabel(self.page_5)
        self.label_5.setGeometry(QtCore.QRect(0, 40, 751, 61))
        font = QtGui.QFont()
        font.setPointSize(-1)
        self.label_5.setFont(font)
        self.label_5.setStyleSheet("QLabel{\n"
"\n"
"text-align: center;\n"
"font-size: 36px;\n"
"color: #222;\n"
"text-shadow: 0px 2px 3px black;\n"
"}\n"
"\n"
"\n"
"")
        self.label_5.setAlignment(QtCore.Qt.AlignCenter)
        self.label_5.setObjectName("label_5")
        self.image_label_3 = QtWidgets.QLabel(self.page_5)
        self.image_label_3.setGeometry(QtCore.QRect(60, 120, 661, 511))
        self.image_label_3.setAutoFillBackground(False)
        self.image_label_3.setStyleSheet("\n"
"background-color: black;\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:gray;\n"
"font:bold 16px;\n"
"padding:10px")
        self.image_label_3.setLineWidth(3)
        self.image_label_3.setMidLineWidth(2)
        self.image_label_3.setText("")
        self.image_label_3.setObjectName("image_label_3")
        self.pushButton13 = QtWidgets.QPushButton(self.page_5)
        self.pushButton13.setGeometry(QtCore.QRect(80, 660, 181, 101))
        self.pushButton13.setStyleSheet("QPushButton{\n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(180, 17, 17), stop:1 rgba(255, 144, 146));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"QPushButton:hover {   \n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 144, 146), stop:1 rgba(180, 17, 17));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 18px;\n"
"padding:10px;\n"
"}\n"
"\n"
"QPushButton:pressed {   \n"
"background-color:rgb(255, 144, 146);\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:2px;\n"
"border-radius:14px;\n"
"border-color:rgb(180, 17, 17);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"")
        self.pushButton13.setObjectName("pushButton13")
        self.pushButton14 = QtWidgets.QPushButton(self.page_5)
        self.pushButton14.setGeometry(QtCore.QRect(300, 660, 181, 101))
        font = QtGui.QFont()
        font.setPointSize(-1)
        font.setBold(True)
        font.setItalic(False)
        font.setWeight(75)
        self.pushButton14.setFont(font)
        self.pushButton14.setStyleSheet("QPushButton{\n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(180, 17, 17), stop:1 rgba(255, 144, 146));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"QPushButton:hover {   \n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 144, 146), stop:1 rgba(180, 17, 17));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 18px;\n"
"padding:10px;\n"
"}\n"
"\n"
"QPushButton:pressed {   \n"
"background-color:rgb(255, 144, 146);\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:2px;\n"
"border-radius:14px;\n"
"border-color:rgb(180, 17, 17);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"")
        self.pushButton14.setObjectName("pushButton14")
        self.pushButton15 = QtWidgets.QPushButton(self.page_5)
        self.pushButton15.setGeometry(QtCore.QRect(520, 660, 181, 101))
        self.pushButton15.setStyleSheet("QPushButton{\n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(180, 17, 17), stop:1 rgba(255, 144, 146));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"QPushButton:hover {   \n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 144, 146), stop:1 rgba(180, 17, 17));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 18px;\n"
"padding:10px;\n"
"}\n"
"\n"
"QPushButton:pressed {   \n"
"background-color:rgb(255, 144, 146);\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:2px;\n"
"border-radius:14px;\n"
"border-color:rgb(180, 17, 17);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"")
        self.pushButton15.setObjectName("pushButton15")
        self.stackedWidget.addWidget(self.page_5)
        self.page6 = QtWidgets.QWidget()
        self.page6.setObjectName("page6")
        self.image_label_7 = QtWidgets.QLabel(self.page6)
        self.image_label_7.setGeometry(QtCore.QRect(60, 120, 661, 511))
        self.image_label_7.setAutoFillBackground(False)
        self.image_label_7.setStyleSheet("\n"
"background-color: black;\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:gray;\n"
"font:bold 16px;\n"
"padding:10px")
        self.image_label_7.setLineWidth(3)
        self.image_label_7.setMidLineWidth(2)
        self.image_label_7.setText("")
        self.image_label_7.setObjectName("image_label_7")
        self.label6 = QtWidgets.QLabel(self.page6)
        self.label6.setGeometry(QtCore.QRect(0, 40, 761, 61))
        font = QtGui.QFont()
        font.setPointSize(-1)
        self.label6.setFont(font)
        self.label6.setStyleSheet("QLabel{\n"
"\n"
"text-align: center;\n"
"font-size: 36px;\n"
"color: #222;\n"
"text-shadow: 0px 2px 3px black;\n"
"}\n"
"\n"
"\n"
"")
        self.label6.setAlignment(QtCore.Qt.AlignCenter)
        self.label6.setObjectName("label6")
        self.pushButton16 = QtWidgets.QPushButton(self.page6)
        self.pushButton16.setGeometry(QtCore.QRect(80, 660, 181, 101))
        self.pushButton16.setStyleSheet("QPushButton{\n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(180, 17, 17), stop:1 rgba(255, 144, 146));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"QPushButton:hover {   \n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 144, 146), stop:1 rgba(180, 17, 17));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 18px;\n"
"padding:10px;\n"
"}\n"
"\n"
"QPushButton:pressed {   \n"
"background-color:rgb(255, 144, 146);\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:2px;\n"
"border-radius:14px;\n"
"border-color:rgb(180, 17, 17);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"")
        self.pushButton16.setObjectName("pushButton16")
        self.pushButton17 = QtWidgets.QPushButton(self.page6)
        self.pushButton17.setGeometry(QtCore.QRect(300, 660, 181, 101))
        font = QtGui.QFont()
        font.setPointSize(-1)
        font.setBold(True)
        font.setItalic(False)
        font.setWeight(75)
        self.pushButton17.setFont(font)
        self.pushButton17.setStyleSheet("QPushButton{\n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(180, 17, 17), stop:1 rgba(255, 144, 146));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"QPushButton:hover {   \n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 144, 146), stop:1 rgba(180, 17, 17));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 18px;\n"
"padding:10px;\n"
"}\n"
"\n"
"QPushButton:pressed {   \n"
"background-color:rgb(255, 144, 146);\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:2px;\n"
"border-radius:14px;\n"
"border-color:rgb(180, 17, 17);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"")
        self.pushButton17.setObjectName("pushButton17")
        self.pushButton18 = QtWidgets.QPushButton(self.page6)
        self.pushButton18.setGeometry(QtCore.QRect(520, 660, 181, 101))
        self.pushButton18.setStyleSheet("QPushButton{\n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgb(180, 17, 17), stop:1 rgba(255, 144, 146));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"QPushButton:hover {   \n"
"background-color:rgb(255, 144, 146);\n"
"background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:1, stop:0 rgba(255, 144, 146), stop:1 rgba(180, 17, 17));\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:1px;\n"
"border-radius:14px;\n"
"border-color:rgb(255, 202, 203);\n"
"font:bold 18px;\n"
"padding:10px;\n"
"}\n"
"\n"
"QPushButton:pressed {   \n"
"background-color:rgb(255, 144, 146);\n"
"color:white;\n"
"border-style: outset;\n"
"border-width:2px;\n"
"border-radius:14px;\n"
"border-color:rgb(180, 17, 17);\n"
"font:bold 16px;\n"
"padding:10px;\n"
"}\n"
"")
        self.pushButton18.setObjectName("pushButton18")
        self.stackedWidget.addWidget(self.page6)
        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        self.stackedWidget.setCurrentIndex(5)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "eTrener"))
        self.label.setText(_translate("MainWindow", "<html><head/><body><p align=\"center\"><span style=\" font-size:48pt;\">e-Trener</span></p></body></html>"))
        self.pushButton.setText(_translate("MainWindow", "Wyjdź"))
        self.pushButton_2.setText(_translate("MainWindow", "Trening dokładności"))
        self.pushButton_13.setText(_translate("MainWindow", "Pomiar refleksu"))
        self.label_13.setText(_translate("MainWindow", "<html><head/><body><p align=\"center\"><span style=\" font-size:27pt;\">Sprawdź swój refleks</span></p></body></html>"))
        self.image_label_11.setText(_translate("MainWindow", "<html><head/><body><p align=\"center\"><br/></p></body></html>"))
        self.pushButton19_4.setText(_translate("MainWindow", "Start"))
        self.pushButton20_7.setText(_translate("MainWindow", "Powrót"))
        self.pushButton_3.setText(_translate("MainWindow", "Rozpocznij \n"
" nagrywanie"))
        self.pushButton_4.setText(_translate("MainWindow", "Sprawdź"))
        self.pushButton_5.setText(_translate("MainWindow", "Powrót do \n"
" menu"))
        self.label6_2.setText(_translate("MainWindow", "Wykroki"))
        self.label_11.setText(_translate("MainWindow", "<html><head/><body><p align=\"center\">Powtórka ćwiczenia</p><p align=\"center\"><br/></p></body></html>"))
        self.pushButton19.setText(_translate("MainWindow", "Start"))
        self.pushButton20.setText(_translate("MainWindow", "Powrót do menu"))
        self.pushButton20_2.setText(_translate("MainWindow", "Wybierz plik"))
        self.label_3.setText(_translate("MainWindow", "Wybierz trening"))
        self.pushButton_9.setText(_translate("MainWindow", "Wykroki"))
        self.pushButton_6.setText(_translate("MainWindow", "Pompki"))
        self.pushButton_7.setText(_translate("MainWindow", "Przysiady"))
        self.pushButton_8.setText(_translate("MainWindow", "Plank"))
        self.label_4.setText(_translate("MainWindow", "<html><head/><body><p><span style=\" font-size:22pt;\">Plank</span></p></body></html>"))
        self.pushButton_10.setText(_translate("MainWindow", "Rozpocznij \n"
" nagrywanie"))
        self.pushButton_11.setText(_translate("MainWindow", "Sprawdź"))
        self.pushButton_12.setText(_translate("MainWindow", "Powrót do \n"
" menu"))
        self.label_5.setText(_translate("MainWindow", "Pompki"))
        self.pushButton13.setText(_translate("MainWindow", "Rozpocznij \n"
" nagrywanie"))
        self.pushButton14.setText(_translate("MainWindow", "Sprawdź"))
        self.pushButton15.setText(_translate("MainWindow", "Powrót do \n"
" menu"))
        self.label6.setText(_translate("MainWindow", "Przysiady"))
        self.pushButton16.setText(_translate("MainWindow", "Rozpocznij \n"
" nagrywanie"))
        self.pushButton17.setText(_translate("MainWindow", "Sprawdź"))
        self.pushButton18.setText(_translate("MainWindow", "Powrót do \n"
" menu"))
예제 #21
0
class Ui_MainWindow(QtWidgets.QMainWindow):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.setWindowModality(QtCore.Qt.NonModal)
        MainWindow.resize(999, 749)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            MainWindow.sizePolicy().hasHeightForWidth())
        MainWindow.setSizePolicy(sizePolicy)
        MainWindow.setAnimated(True)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.centralwidget.sizePolicy().hasHeightForWidth())
        self.centralwidget.setSizePolicy(sizePolicy)
        self.centralwidget.setObjectName("centralwidget")
        self.first_mediaplayer = QtWidgets.QFrame(self.centralwidget)
        self.first_mediaplayer.setGeometry(QtCore.QRect(540, 0, 461, 301))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.first_mediaplayer.sizePolicy().hasHeightForWidth())
        self.first_mediaplayer.setSizePolicy(sizePolicy)
        self.first_mediaplayer.setStyleSheet("")
        self.first_mediaplayer.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.first_mediaplayer.setFrameShadow(QtWidgets.QFrame.Raised)
        self.first_mediaplayer.setObjectName("first_mediaplayer")

        self.time_slider = QtWidgets.QSlider(self.first_mediaplayer)
        self.time_slider.setGeometry(QtCore.QRect(58, 240, 311, 31))
        self.time_slider.setOrientation(QtCore.Qt.Horizontal)
        self.time_slider.setObjectName("time_slider")
        self.current_time_label = QtWidgets.QLabel(self.first_mediaplayer)
        self.current_time_label.setGeometry(QtCore.QRect(20, 248, 60, 16))
        self.current_time_label.setObjectName("current_time_label")
        self.time_left_label = QtWidgets.QLabel(self.first_mediaplayer)
        self.time_left_label.setGeometry(QtCore.QRect(380, 248, 60, 16))
        self.time_left_label.setObjectName("time_left_label")
        self.video_player = QVideoWidget(self.first_mediaplayer)
        self.video_player.setEnabled(True)
        self.video_player.setGeometry(QtCore.QRect(20, 7, 419, 236))

        self.video_player.setAutoFillBackground(False)
        self.video_player.setStyleSheet(
            "background-color: rgb(255, 255, 255);")
        self.video_player.setObjectName("video_player")
        self.volume_control = QtWidgets.QSlider(self.first_mediaplayer)
        self.volume_control.setGeometry(QtCore.QRect(340, 262, 101, 22))
        self.volume_control.setOrientation(QtCore.Qt.Horizontal)
        self.volume_control.setObjectName("volume_control")
        self.pauseButton = QtWidgets.QPushButton(self.first_mediaplayer)
        self.pauseButton.setGeometry(QtCore.QRect(150, 260, 31, 31))
        self.pauseButton.setAutoFillBackground(False)
        self.pauseButton.setStyleSheet(
            "background-color: rgba(255, 255, 255, 0);")
        self.pauseButton.setText("")
        icon = QtGui.QIcon()
        icon.addPixmap(
            QtGui.QPixmap("resources/buttons/media_buttons/pause1.png"),
            QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.pauseButton.setIcon(icon)
        self.pauseButton.setIconSize(QtCore.QSize(31, 31))
        self.pauseButton.setObjectName("pauseButton")
        self.playButton = QtWidgets.QPushButton(self.first_mediaplayer)
        self.playButton.setGeometry(QtCore.QRect(190, 260, 31, 31))
        self.playButton.setAutoFillBackground(False)
        self.playButton.setStyleSheet(
            "background-color: rgba(255, 255, 255, 0);")
        self.playButton.setText("")
        icon1 = QtGui.QIcon()
        icon1.addPixmap(
            QtGui.QPixmap("resources/buttons/media_buttons/play1.png"),
            QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.playButton.setIcon(icon1)
        self.playButton.setIconSize(QtCore.QSize(31, 31))
        self.playButton.setObjectName("playButton")
        self.nextButton = QtWidgets.QPushButton(self.first_mediaplayer)
        self.nextButton.setGeometry(QtCore.QRect(229, 260, 31, 31))
        self.nextButton.setAutoFillBackground(False)
        self.nextButton.setStyleSheet(
            "background-color: rgba(255, 255, 255, 0);")
        self.nextButton.setText("")
        icon2 = QtGui.QIcon()
        icon2.addPixmap(
            QtGui.QPixmap("resources/buttons/media_buttons/next_vid1.png"),
            QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.nextButton.setIcon(icon2)
        self.nextButton.setIconSize(QtCore.QSize(31, 31))
        self.nextButton.setObjectName("nextButton")
        self.stopButton = QtWidgets.QPushButton(self.first_mediaplayer)
        self.stopButton.setGeometry(QtCore.QRect(110, 260, 31, 31))
        self.stopButton.setAutoFillBackground(False)
        self.stopButton.setStyleSheet(
            "background-color: rgba(255, 255, 255, 0);")
        self.stopButton.setText("")
        icon3 = QtGui.QIcon()
        icon3.addPixmap(
            QtGui.QPixmap("resources/buttons/media_buttons/stop1.png"),
            QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.stopButton.setIcon(icon3)
        self.stopButton.setIconSize(QtCore.QSize(31, 31))
        self.stopButton.setObjectName("stopButton")
        self.muteButton = QtWidgets.QPushButton(self.first_mediaplayer)
        self.muteButton.setGeometry(QtCore.QRect(278, 262, 23, 23))
        self.muteButton.setAutoFillBackground(False)
        self.muteButton.setStyleSheet(
            "background-color: rgba(255, 255, 255, 0);")
        self.muteButton.setText("")
        icon4 = QtGui.QIcon()
        icon4.addPixmap(
            QtGui.QPixmap("resources/buttons/media_buttons/mute1.png"),
            QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.muteButton.setIcon(icon4)
        self.muteButton.setIconSize(QtCore.QSize(31, 31))
        self.muteButton.setObjectName("muteButton")
        self.volumeButton = QtWidgets.QPushButton(self.first_mediaplayer)
        self.volumeButton.setGeometry(QtCore.QRect(310, 261, 23, 23))
        self.volumeButton.setAutoFillBackground(False)
        self.volumeButton.setStyleSheet(
            "background-color: rgba(255, 255, 255, 0);")
        self.volumeButton.setText("")
        icon5 = QtGui.QIcon()
        icon5.addPixmap(
            QtGui.QPixmap("resources/buttons/media_buttons/volume1.png"),
            QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.volumeButton.setIcon(icon5)
        self.volumeButton.setIconSize(QtCore.QSize(31, 31))
        self.volumeButton.setObjectName("volumeButton")

        self.mini_viewer = QtWidgets.QFrame(self.centralwidget)
        self.mini_viewer.setGeometry(QtCore.QRect(10, 300, 991, 411))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.mini_viewer.sizePolicy().hasHeightForWidth())
        self.mini_viewer.setSizePolicy(sizePolicy)
        self.mini_viewer.setStyleSheet("\n" "")
        self.mini_viewer.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.mini_viewer.setFrameShadow(QtWidgets.QFrame.Raised)
        self.mini_viewer.setObjectName("mini_viewer")
        self.timeline_1 = QtWidgets.QGraphicsView(self.mini_viewer)
        self.timeline_1.setGeometry(QtCore.QRect(47, 77, 886, 24))
        self.timeline_1.setStyleSheet("border-style: solid;\n"
                                      "border-width: 3px;\n"
                                      "border-color: rgb(250, 240, 242);")
        self.timeline_1.setObjectName("timeline_1")
        self.mini_view_1 = QtWidgets.QGraphicsView(self.mini_viewer)
        self.mini_view_1.setGeometry(QtCore.QRect(47, 107, 886, 86))
        self.mini_view_1.setStyleSheet("border-style: solid;\n"
                                       "border-width: 3px;\n"
                                       "border-color: rgb(146, 130, 229);")
        self.mini_view_1.setObjectName("mini_view_1")
        self.timeline_2 = QtWidgets.QGraphicsView(self.mini_viewer)
        self.timeline_2.setGeometry(QtCore.QRect(47, 217, 886, 24))
        self.timeline_2.setStyleSheet(
            "border-style: solid;\n"
            "border-width: 3px;\n"
            "border-left-color: rgb(255, 150, 150);\n"
            "border-right-color: rgb(255, 255, 255);\n"
            "border-top-color: rgb(255, 255, 255);\n"
            "border-bottom-color: rgb(255, 255, 255);\n")
        self.timeline_2.setObjectName("timeline_2")
        self.mini_view_2 = QtWidgets.QGraphicsView(self.mini_viewer)
        self.mini_view_2.setGeometry(QtCore.QRect(47, 317, 886, 86))
        self.mini_view_2.setStyleSheet("border-style: solid;\n"
                                       "border-width: 3px;\n"
                                       "border-color: rgb(146, 130, 229);")
        self.mini_view_2.setObjectName("mini_view_2")

        # a button to extract videos
        self.push_extract_1 = QtWidgets.QPushButton(self.mini_viewer)
        self.push_extract_1.setGeometry(QtCore.QRect(40, 20, 141, 31))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.push_extract_1.sizePolicy().hasHeightForWidth())
        self.push_extract_1.setSizePolicy(sizePolicy)
        self.push_extract_1.setStyleSheet("")
        self.push_extract_1.setObjectName("push_extract_1")

        # a button for displaying anomalous time line
        self.push_extract_2 = QtWidgets.QPushButton(self.mini_viewer)
        self.push_extract_2.setGeometry(QtCore.QRect(200, 20, 141, 31))
        self.push_extract_2.setSizePolicy(sizePolicy)
        self.push_extract_2.setStyleSheet("")
        self.push_extract_2.setObjectName("push_extract_2")

        self.timeline_3 = QtWidgets.QGraphicsView(self.mini_viewer)
        self.timeline_3.setGeometry(QtCore.QRect(47, 252, 886, 24))
        self.timeline_3.setStyleSheet(
            "border-style: solid;\n"
            "border-width: 3px;\n"
            "border-left-color: rgb(150, 255, 150);\n"
            "border-right-color: rgb(255, 255, 255);\n"
            "border-top-color: rgb(255, 255, 255);\n"
            "border-bottom-color: rgb(255, 255, 255);\n")
        self.timeline_3.setObjectName("timeline_3")
        self.timeline_4 = QtWidgets.QGraphicsView(self.mini_viewer)
        self.timeline_4.setGeometry(QtCore.QRect(47, 287, 886, 24))
        self.timeline_4.setStyleSheet(
            "border-style: solid;\n"
            "border-width: 3px;\n"
            "border-left-color: rgb(150, 150, 255);\n"
            "border-right-color: rgb(255, 255, 255);\n"
            "border-top-color: rgb(255, 255, 255);\n"
            "border-bottom-color: rgb(255, 255, 255);")
        self.timeline_4.setObjectName("timeline_4")
        self.lcdNumber_1 = QtWidgets.QLCDNumber(self.mini_viewer)
        self.lcdNumber_1.setGeometry(QtCore.QRect(20, 50, 64, 23))
        self.lcdNumber_1.setObjectName("lcdNumber_1")
        self.lcdNumber_1.setStyleSheet("border-style: transparent;\n"
                                       "color: rgb(146, 130, 229); ")
        #self.lcdNumber.display('10:00')
        self.lcdNumber_2 = QtWidgets.QLCDNumber(self.mini_viewer)
        self.lcdNumber_2.setGeometry(QtCore.QRect(242, 50, 64, 23))
        self.lcdNumber_2.setObjectName("lcdNumber_2")
        self.lcdNumber_2.setStyleSheet("border-style: transparent;\n"
                                       "color: rgb(146, 130, 229); ")
        self.lcdNumber_4 = QtWidgets.QLCDNumber(self.mini_viewer)
        self.lcdNumber_4.setGeometry(QtCore.QRect(465, 50, 64, 23))
        self.lcdNumber_4.setObjectName("lcdNumber_4")
        self.lcdNumber_4.setStyleSheet("border-style: transparent;\n"
                                       "color: rgb(146, 130, 229); ")
        self.lcdNumber_5 = QtWidgets.QLCDNumber(self.mini_viewer)
        self.lcdNumber_5.setGeometry(QtCore.QRect(688, 50, 64, 23))
        self.lcdNumber_5.setObjectName("lcdNumber_5")
        self.lcdNumber_5.setStyleSheet("border-style: transparent;\n"
                                       "color: rgb(146, 130, 229); ")
        self.lcdNumber_6 = QtWidgets.QLCDNumber(self.mini_viewer)
        self.lcdNumber_6.setGeometry(QtCore.QRect(910, 50, 64, 23))
        self.lcdNumber_6.setObjectName("lcdNumber_6")
        self.lcdNumber_6.setStyleSheet("border-style: transparent;\n"
                                       "color: rgb(146, 130, 229); ")
        self.textEdit = QtWidgets.QTextEdit(self.mini_viewer)
        self.textEdit.setGeometry(QtCore.QRect(500, 20, 441, 51))
        self.textEdit.setObjectName("textEdit")
        self.textEdit.setStyleSheet("background-color: transparent;")
        self.tabWidget = QtWidgets.QTabWidget(self.centralwidget)
        self.tabWidget.setGeometry(QtCore.QRect(20, 0, 511, 301))
        self.tabWidget.setObjectName("tabWidget")
        self.tab1 = QtWidgets.QWidget()
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.tab1.sizePolicy().hasHeightForWidth())
        self.tab1.setSizePolicy(sizePolicy)
        self.tab1.setObjectName("tab1")
        self.playlistView = QtWidgets.QListView(self.tab1)
        self.playlistView.setEnabled(True)
        self.playlistView.setGeometry(QtCore.QRect(0, 0, 511, 271))
        self.playlistView.setObjectName("playlistView")
        self.tabWidget.addTab(self.tab1, "")
        self.tab_2 = QtWidgets.QWidget()
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.tab_2.sizePolicy().hasHeightForWidth())
        self.tab_2.setSizePolicy(sizePolicy)
        self.tab_2.setObjectName("tab_2")
        self.treeView2 = QtWidgets.QTreeView(self.tab_2)
        self.treeView2.setGeometry(QtCore.QRect(0, 0, 511, 271))
        self.treeView2.setAcceptDrops(True)
        self.treeView2.setObjectName("treeView2")
        self.tabWidget.addTab(self.tab_2, "")
        self.tab = QtWidgets.QWidget()
        self.tab.setObjectName("tab")
        self.treeView2_2 = QtWidgets.QTreeView(self.tab)
        self.treeView2_2.setGeometry(QtCore.QRect(0, 0, 511, 271))
        self.treeView2_2.setAcceptDrops(True)
        self.treeView2_2.setObjectName("treeView2_2")

        ## button to run models
        self.run_mil_button = QtWidgets.QPushButton(self.tab)
        self.run_mil_button.setEnabled(True)
        self.run_mil_button.setGeometry(QtCore.QRect(80, 10, 112, 32))
        self.run_mil_button.setObjectName("run_mil_button")

        self.run_ffpa_button = QtWidgets.QPushButton(self.tab)
        self.run_ffpa_button.setEnabled(True)
        self.run_ffpa_button.setGeometry(QtCore.QRect(200, 10, 112, 32))
        self.run_ffpa_button.setObjectName("run_ffpa_button")

        self.tabWidget.addTab(self.tab, "")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menuBar = QtWidgets.QMenuBar(MainWindow)
        self.menuBar.setGeometry(QtCore.QRect(0, 0, 999, 22))
        self.menuBar.setToolTipDuration(0)
        self.menuBar.setObjectName("menuBar")
        self.menuHelp = QtWidgets.QMenu(self.menuBar)
        self.menuHelp.setObjectName("menuHelp")
        self.menuEdit = QtWidgets.QMenu(self.menuBar)
        self.menuEdit.setObjectName("menuEdit")
        self.menuView = QtWidgets.QMenu(self.menuBar)
        self.menuView.setObjectName("menuView")
        self.menuFiles = QtWidgets.QMenu(self.menuBar)
        self.menuFiles.setObjectName("menuFiles")
        self.menuVidsurveil = QtWidgets.QMenu(self.menuBar)
        self.menuVidsurveil.setObjectName("menuVidsurveil")
        MainWindow.setMenuBar(self.menuBar)
        self.actionLicense = QtWidgets.QAction(MainWindow)
        self.actionLicense.setObjectName("actionLicense")
        self.actionAdd_Files = QtWidgets.QAction(MainWindow)
        self.actionAdd_Files.setCheckable(True)
        self.actionAdd_Files.setChecked(False)
        self.actionAdd_Files.setObjectName("actionAdd_Files")
        self.actionAbout = QtWidgets.QAction(MainWindow)
        self.actionAbout.setObjectName("actionAbout")
        self.menuHelp.addAction(self.actionLicense)
        self.menuFiles.addAction(self.actionAdd_Files)
        self.menuVidsurveil.addAction(self.actionAbout)
        self.menuBar.addAction(self.menuVidsurveil.menuAction())
        self.menuBar.addAction(self.menuFiles.menuAction())
        self.menuBar.addAction(self.menuView.menuAction())
        self.menuBar.addAction(self.menuEdit.menuAction())
        self.menuBar.addAction(self.menuHelp.menuAction())

        self.retranslateUi(MainWindow)
        self.tabWidget.setCurrentIndex(0)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.textEdit.setHtml(
            _translate(
                "MainWindow",
                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
                "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
                "p, li { white-space: pre-wrap; }\n"
                "</style></head><body style=\" font-family:\'.AppleSystemUIFont\'; font-size:13pt; font-weight:400; font-style:normal;\">\n"
                "<p style=\" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" color:#faf0f2;\">⬤</span><span style=\" color:#ee5262;\"> </span><span style=\" font-size:20pt; font-weight:600; color:#000000; vertical-align:sub;\">Combined     </span><span style=\" color:#ff9696;\">⬤</span><span style=\" color:#96ff96;\"> </span><span style=\" font-size:20pt; font-weight:600; color:#000000; vertical-align:sub;\">MIL+C3D</span><span style=\" font-size:20pt; color:#000000; vertical-align:sub;\">      </span><span style=\" color:#96ff96;\">⬤</span><span style=\" font-size:20pt; color:#ee5262; vertical-align:sub;\"> </span><span style=\" font-size:20pt; font-weight:600; color:#000000; vertical-align:sub;\">Future Frame     </span><span style=\" color:#9696ff;\">⬤</span><span style=\" color:#ee5262;\"> </span><span style=\" font-size:20pt; font-weight:600; color:#000000; vertical-align:sub;\">MNAD</span></p>\n"
                "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:18pt; color:#000000; vertical-align:sub;\"><br /></p></body></html>"
            ))
        self.current_time_label.setText(_translate("MainWindow", "0:00"))
        self.time_left_label.setText(_translate("MainWindow", "0:00"))
        self.push_extract_1.setText(_translate("MainWindow", "Extract Videos"))
        self.push_extract_2.setText(
            _translate("MainWindow", "Show Anomalous Time"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab1),
                                  _translate("MainWindow", "Original Videos"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2),
                                  _translate("MainWindow", "Extracted Videos"))
        self.run_mil_button.setText(_translate("MainWindow", "Run MIL"))
        self.run_ffpa_button.setText(_translate("MainWindow", "Run FFPA"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab),
                                  _translate("MainWindow", "Model"))
        self.menuHelp.setTitle(_translate("MainWindow", "Help"))
        self.menuEdit.setTitle(_translate("MainWindow", "Edit"))
        self.menuView.setTitle(_translate("MainWindow", "View"))
        self.menuFiles.setTitle(_translate("MainWindow", "Files"))
        self.menuVidsurveil.setTitle(_translate("MainWindow", "Vidsurveil"))
        self.actionLicense.setText(_translate("MainWindow", "License"))
        self.actionAdd_Files.setText(_translate("MainWindow", "Add Files"))
        self.actionAbout.setText(_translate("MainWindow", "About"))
예제 #22
0
class Window(QWidget):

    # конструктор формы
    def __init__(self):
        super().__init__()
        self._Client = Biometric_Client(
            url='https://expasoft.com',
            port=2133,
            subscription_key='9fc9474b4bd16b492276eee41763a3cb')

        self.resize(800, 600)
        self.setObjectName("FormMain")
        self.setWindowTitle("БиоСКУД Archivist")

        self.labelHumans = QtWidgets.QLabel(self)
        self.labelHumans.setObjectName("labelHumans")
        self.labelHumans.setText("Профили сотрудников")
        self.labelHumans.setGeometry(QtCore.QRect(80, 15, 181, 21))
        font = QtGui.QFont()
        font.setPointSize(12)
        self.labelHumans.setFont(font)

        self.labelPhotos = QtWidgets.QLabel(self)
        self.labelPhotos.setObjectName("labelPhotos")
        self.labelPhotos.setText("Фото сотрудника")
        self.labelPhotos.setGeometry(QtCore.QRect(390, 15, 181, 21))
        font = QtGui.QFont()
        font.setPointSize(12)
        self.labelPhotos.setFont(font)

        self.listViewHumans = QtWidgets.QListWidget(self)
        self.listViewHumans.setObjectName("listViewHumans")
        self.listViewHumans.setGeometry(QtCore.QRect(10, 50, 291, 531))
        self.listViewHumans.setIconSize(QtCore.QSize(200, 200))
        self.listViewHumans.itemClicked.connect(self.LoadProfile)

        self.listViewPhotos = QtWidgets.QListWidget(self)
        self.listViewPhotos.setObjectName("listViewPhotos")
        self.listViewPhotos.setGeometry(QtCore.QRect(310, 50, 291, 281))
        self.listViewPhotos.setIconSize(QtCore.QSize(150, 150))

        self.labelName = QLabel(self)
        self.labelName.setText("ФИО:")
        self.labelName.move(310, 355)

        self.lineName = QLineEdit(self)
        self.lineName.resize(140, 25)
        self.lineName.move(350, 350)

        self.labelTag = QLabel(self)
        self.labelTag.setText("Пост:")
        self.labelTag.move(310, 385)

        self.lineTag = QLineEdit(self)
        self.lineTag.resize(140, 25)
        self.lineTag.move(350, 380)

        self.pushButtonAddProfile = QtWidgets.QPushButton(self)
        self.pushButtonAddProfile.setGeometry(QtCore.QRect(310, 420, 181, 51))
        self.pushButtonAddProfile.setObjectName("pushButtonAddProfile")
        self.pushButtonAddProfile.setText("Добавить профиль")
        self.pushButtonAddProfile.clicked.connect(self.AddProfile)

        self.pushButtonUpdateProfile = QtWidgets.QPushButton(self)
        self.pushButtonUpdateProfile.setGeometry(
            QtCore.QRect(310, 475, 181, 51))
        self.pushButtonUpdateProfile.setObjectName("pushButtonAddProfile")
        self.pushButtonUpdateProfile.setText("Обновить профиль")
        self.pushButtonUpdateProfile.clicked.connect(self.UpdateProfile)

        self.pushButtonDelProfile = QtWidgets.QPushButton(self)
        self.pushButtonDelProfile.setGeometry(QtCore.QRect(310, 530, 181, 51))
        self.pushButtonDelProfile.setObjectName("pushButtonDelProfile")
        self.pushButtonDelProfile.setText("Удалить профиль")
        self.pushButtonDelProfile.clicked.connect(self.DelProfile)

        self.CameraStream = QVideoWidget(self)
        self.CameraStream.setObjectName("videoCameraStream")
        self.CameraStream.setGeometry(QtCore.QRect(610, 25, 180, 200))

        self.device = QCamera.availableDevices()[0]
        self.camera = QCamera(self.device)
        self.camera.setViewfinder(self.CameraStream)
        self.camera.setCaptureMode(QCamera.CaptureStillImage)
        self.imageCapture = QCameraImageCapture(self.camera)
        self.imageCapture.imageSaved.connect(self.AddPhotoEnd)
        self.camera.start()

        self.pushButtonAddPhoto = QtWidgets.QPushButton(self)
        self.pushButtonAddPhoto.setObjectName("pushButtonAddPhoto")
        self.pushButtonAddPhoto.setText("Добавить фото")
        self.pushButtonAddPhoto.setGeometry(QtCore.QRect(610, 225, 181, 51))
        self.pushButtonAddPhoto.clicked.connect(self.AddPhotoBegin)

        self.pushButtonDelPhoto = QtWidgets.QPushButton(self)
        self.pushButtonDelPhoto.setObjectName("pushButtonDelPhoto")
        self.pushButtonDelPhoto.setText("Удалить фото")
        self.pushButtonDelPhoto.setGeometry(QtCore.QRect(610, 280, 181, 51))
        self.pushButtonDelPhoto.clicked.connect(self.DelPhoto)

        self.LoadProfiles()

# загружаем список сотрудников

    def LoadProfiles(self):
        self.listViewHumans.clear()
        AllProfiles = self._Client.get_profiles_ids()['result']
        if len(AllProfiles) != 0:
            for profile in AllProfiles:
                item = QtWidgets.QListWidgetItem()
                #item.setText(str(profile))
                if (GetInfo(str(profile)) != None):
                    item.setText(GetInfo(str(profile))["name"])
                item.setToolTip(str(profile))

                AllPhoto = self._Client.get_profile_images_ids(
                    profile)['result']
                if len(AllPhoto) != 0:
                    FileName = "img/" + str(profile) + '-' + str(
                        AllPhoto[0]) + '.jpg'
                    self._Client.get_profile_image(profile, AllPhoto[0],
                                                   FileName)
                    item.setIcon(QtGui.QIcon(FileName))
                self.listViewHumans.addItem(item)

    # загружаем профиль
    def LoadProfile(self, item):
        self.listViewPhotos.clear()
        #idProfile = int(item.text())
        idProfile = int(item.toolTip())
        AllPhoto = self._Client.get_profile_images_ids(idProfile)['result']
        for photo in AllPhoto:
            FileName = "img/" + str(idProfile) + '-' + str(photo) + '.jpg'
            self._Client.get_profile_image(idProfile, photo, FileName)

            item = QtWidgets.QListWidgetItem()
            item.setText(str(photo))
            item.setIcon(QtGui.QIcon(FileName))
            self.listViewPhotos.addItem(item)
        infoProfile = JsonDataBase.GetInfo(idProfile)
        if infoProfile != None:
            self.lineName.setText(infoProfile['name'])
            self.lineTag.setText(infoProfile['tag'])
        else:
            self.lineName.setText("")
            self.lineTag.setText("")

    # добавляем профиль
    def AddProfile(self):
        profile_name = self.lineName.text()
        profile_post = self.lineTag.text()
        Id_Profile = self._Client.add_profile(profile_name,
                                              '01.01.1111',
                                              'm',
                                              tags="").pop('result')
        JsonDataBase.AddInfo(Id_Profile, profile_name, '01.01.1111', "m",
                             profile_post)
        self.LoadProfiles()

    # обновляем профиль
    def UpdateProfile(self):
        Id_Profile = self.listViewHumans.currentItem().toolTip()
        profile_name = self.lineName.text()
        profile_post = self.lineTag.text()
        if (JsonDataBase.GetInfo(Id_Profile) != None):
            JsonDataBase.UpdateInfo(Id_Profile,
                                    name=profile_name,
                                    tag=profile_post)
        else:
            JsonDataBase.AddInfo(Id_Profile,
                                 name=profile_name,
                                 tag=profile_post)
        self.LoadProfiles()

    # удаляем профиль
    def DelProfile(self):
        Id_Profile = self.listViewHumans.currentItem().toolTip()
        self._Client.delete_profile(Id_Profile)
        JsonDataBase.DelInfo(Id_Profile)
        self.LoadProfiles()

    # добавляем фото
    def AddPhotoBegin(self):
        if self.imageCapture.isReadyForCapture():
            imgName = os.getcwd() + "\img\currentPhoto.jpg"
            self.camera.searchAndLock()
            self.imageCapture.capture(imgName)
            self.camera.unlock()

    def AddPhotoEnd(self):
        print(0)
        imgName = os.getcwd() + "\img\currentPhoto.jpg"
        imgName0 = os.getcwd() + "\img\currentPhoto0.jpg"
        idProfile = int(self.listViewHumans.currentItem().toolTip())
        self._Client.get_aligned_faces(imgName, "img\currentPhoto")
        self._Client.enroll_profile_face(idProfile, imgName0)
        self.LoadProfile(self.listViewHumans.currentItem())

    # удаляем фото
    def DelPhoto(self):
        #Id_Profile = self.listViewHumans.currentItem().text()
        Id_Profile = self.listViewHumans.currentItem().toolTip()
        Id_Photo = self.listViewPhotos.currentItem().text()
        self._Client.delete_image(Id_Profile, Id_Photo)
        self.LoadProfile(self.listViewHumans.currentItem())
예제 #23
0
class Ui_Dialog(object):
    NAME, PATH, TYPE, PARAM, TIME = range(5)

    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(1666, 900)
        self.treeView = QtWidgets.QTreeView(Dialog)
        self.treeView.setGeometry(QtCore.QRect(50, 60, 1561, 191))
        self.treeView.setObjectName("treeView")

        self.label = QtWidgets.QLabel(Dialog)
        self.label.setGeometry(QtCore.QRect(50, 280, 720, 405))
        font = QtGui.QFont()
        font.setPointSize(12)
        self.label.setFont(font)
        self.label.setAlignment(QtCore.Qt.AlignCenter)
        self.label.setObjectName("label")
        self.label_2 = QtWidgets.QLabel(Dialog)
        self.label_2.setGeometry(QtCore.QRect(890, 280, 720, 405))

        self.wgt_video_1 = QVideoWidget(Dialog)
        self.wgt_video_1.setGeometry(QtCore.QRect(50, 280, 720, 405))
        self.player_1 = QMediaPlayer()
        self.player_1.setVideoOutput(self.wgt_video_1)
        self.wgt_video_1.setObjectName("widget")

        self.wgt_video_2 = QVideoWidget(Dialog)
        self.wgt_video_2.setGeometry(QtCore.QRect(890, 280, 720, 405))
        self.player_2 = QMediaPlayer()
        self.player_2.setVideoOutput(self.wgt_video_2)
        self.wgt_video_2.setObjectName("widget")

        font = QtGui.QFont()
        font.setPointSize(12)
        self.label_2.setFont(font)
        self.label_2.setAlignment(QtCore.Qt.AlignCenter)
        self.label_2.setObjectName("label_2")
        self.groupBox = QtWidgets.QGroupBox(Dialog)
        self.groupBox.setGeometry(QtCore.QRect(50, 710, 1561, 151))
        font = QtGui.QFont()
        font.setPointSize(12)
        self.groupBox.setFont(font)
        self.groupBox.setObjectName("groupBox")
        self.label_4 = QtWidgets.QLabel(self.groupBox)
        self.label_4.setGeometry(QtCore.QRect(20, 30, 1521, 111))
        self.label_4.setObjectName("label_4")
        self.label_3 = QtWidgets.QLabel(Dialog)
        self.label_3.setGeometry(QtCore.QRect(50, 20, 361, 31))
        font = QtGui.QFont()
        font.setPointSize(12)
        font.setBold(True)
        font.setWeight(75)
        self.label_3.setFont(font)
        self.label_3.setObjectName("label_3")
        self.pushButton = QtWidgets.QPushButton(Dialog)
        self.pushButton.setGeometry(QtCore.QRect(780, 280, 101, 31))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.pushButton.setFont(font)
        self.pushButton.setObjectName("pushButton")
        self.pushButton_2 = QtWidgets.QPushButton(Dialog)
        self.pushButton_2.setGeometry(QtCore.QRect(780, 320, 51, 31))
        self.pushButton_2.setObjectName("pushButton_2")
        self.pushButton_3 = QtWidgets.QPushButton(Dialog)
        self.pushButton_3.setGeometry(QtCore.QRect(830, 320, 51, 31))
        self.pushButton_3.setObjectName("pushButton_3")
        self.pushButton_5 = QtWidgets.QPushButton(Dialog)
        self.pushButton_5.setGeometry(QtCore.QRect(780, 320, 51, 31))
        self.pushButton_5.setObjectName("pushButton_2")
        self.pushButton_6 = QtWidgets.QPushButton(Dialog)
        self.pushButton_6.setGeometry(QtCore.QRect(830, 320, 51, 31))
        self.pushButton_6.setObjectName("pushButton_3")
        self.pushButton_4 = QtWidgets.QPushButton(Dialog)
        self.pushButton_4.setGeometry(QtCore.QRect(780, 360, 101, 31))
        font = QtGui.QFont()
        font.setPointSize(10)
        self.pushButton_4.setFont(font)
        self.pushButton_4.setObjectName("pushButton_4")

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
        self.label.setText(_translate("Dialog", "原始图像"))
        self.label_2.setText(_translate("Dialog", "检测结果"))
        self.groupBox.setTitle(_translate("Dialog", "参数信息"))
        self.label_3.setText(_translate("Dialog", "用户XXX历史检测结果"))
        self.label_4.setText(
            _translate("Dialog", "准确率:-;召回率:-;学习率:-;训练步数:-;损失:-;参数发行日期:-;"))
        self.pushButton.setText(_translate("Dialog", "删除记录"))
        self.pushButton_2.setText(_translate("Dialog", "放大"))
        self.pushButton_3.setText(_translate("Dialog", "放大"))
        self.pushButton_4.setText(_translate("Dialog", "播放"))
        self.pushButton_5.setText(_translate("Dialog", "放大"))
        self.pushButton_6.setText(_translate("Dialog", "放大"))

    def createHistoryModel(self, parent):
        model = QStandardItemModel(0, 5, parent)
        model.setHeaderData(self.NAME, Qt.Horizontal, "原文件名")
        model.setHeaderData(self.PATH, Qt.Horizontal, "所在路径")
        model.setHeaderData(self.TYPE, Qt.Horizontal, "文件类型")
        model.setHeaderData(self.PARAM, Qt.Horizontal, "参数文件")
        model.setHeaderData(self.TIME, Qt.Horizontal, "检测时间")
        return model

    def add_history(self, model, name, path, type, param, time):
        model.insertRow(0)
        model.setData(model.index(0, self.NAME), name)
        model.setData(model.index(0, self.PATH), path)
        model.setData(model.index(0, self.TYPE), type)
        model.setData(model.index(0, self.PARAM), param)
        model.setData(model.index(0, self.TIME), time)

    def get_param_info(self, ap, ar, lr, epoch, loss, time):
        self.label_4.setText("准确率:%s;召回率:%s;学习率:%s;训练步数:%s;损失:%s;参数发行日期:%s;" %
                             (ap, ar, lr, epoch, loss, time))
class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(1020, 885)
        self.groupBox = QtWidgets.QGroupBox(Form)
        self.groupBox.setGeometry(QtCore.QRect(0, 630, 631, 71))
        self.groupBox.setObjectName("groupBox")
        self.label = QtWidgets.QLabel(self.groupBox)
        self.label.setGeometry(QtCore.QRect(10, 30, 24, 16))
        self.label.setObjectName("label")
        self.cutStartTime = QtWidgets.QLineEdit(self.groupBox)
        self.cutStartTime.setGeometry(QtCore.QRect(50, 30, 150, 20))
        self.cutStartTime.setObjectName("cutStartTime")
        self.cutEndTime = QtWidgets.QLineEdit(self.groupBox)
        self.cutEndTime.setGeometry(QtCore.QRect(290, 30, 150, 20))
        self.cutEndTime.setObjectName("cutEndTime")
        self.label_2 = QtWidgets.QLabel(self.groupBox)
        self.label_2.setGeometry(QtCore.QRect(260, 30, 18, 16))
        self.label_2.setObjectName("label_2")
        self.cutButton = QtWidgets.QPushButton(self.groupBox)
        self.cutButton.setGeometry(QtCore.QRect(500, 30, 75, 23))
        self.cutButton.setObjectName("cutButton")
        self.widget = QVideoWidget(Form)
        self.widget.setGeometry(QtCore.QRect(40, 70, 900, 500))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.widget.sizePolicy().hasHeightForWidth())
        self.widget.setSizePolicy(sizePolicy)
        self.widget.setObjectName("widget")
        self.playButton = QtWidgets.QPushButton(Form)
        self.playButton.setGeometry(QtCore.QRect(0, 570, 40, 40))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.playButton.sizePolicy().hasHeightForWidth())
        self.playButton.setSizePolicy(sizePolicy)
        self.playButton.setText("")
        self.playButton.setObjectName("playButton")
        self.horizontalSlider = QtWidgets.QSlider(Form)
        self.horizontalSlider.setEnabled(True)
        self.horizontalSlider.setGeometry(QtCore.QRect(40, 580, 900, 25))
        self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal)
        self.horizontalSlider.setObjectName("horizontalSlider")
        self.timeLcd = QtWidgets.QLCDNumber(Form)
        self.timeLcd.setGeometry(QtCore.QRect(940, 580, 80, 23))
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Minimum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.timeLcd.sizePolicy().hasHeightForWidth())
        self.timeLcd.setSizePolicy(sizePolicy)
        self.timeLcd.setObjectName("timeLcd")
        self.OpenButton = QtWidgets.QPushButton(Form)
        self.OpenButton.setGeometry(QtCore.QRect(0, 0, 81, 41))
        self.OpenButton.setObjectName("OpenButton")
        self.groupBox_2 = QtWidgets.QGroupBox(Form)
        self.groupBox_2.setGeometry(QtCore.QRect(650, 630, 361, 71))
        self.groupBox_2.setObjectName("groupBox_2")
        self.mirror_xButton = QtWidgets.QPushButton(self.groupBox_2)
        self.mirror_xButton.setGeometry(QtCore.QRect(60, 30, 75, 23))
        self.mirror_xButton.setObjectName("mirror_xButton")
        self.mirror_yButton = QtWidgets.QPushButton(self.groupBox_2)
        self.mirror_yButton.setGeometry(QtCore.QRect(220, 30, 75, 23))
        self.mirror_yButton.setObjectName("mirror_yButton")
        self.groupBox_3 = QtWidgets.QGroupBox(Form)
        self.groupBox_3.setGeometry(QtCore.QRect(0, 730, 421, 101))
        self.groupBox_3.setObjectName("groupBox_3")
        self.speed_line = QtWidgets.QLineEdit(self.groupBox_3)
        self.speed_line.setGeometry(QtCore.QRect(140, 40, 113, 20))
        self.speed_line.setObjectName("speed_line")
        self.label_3 = QtWidgets.QLabel(self.groupBox_3)
        self.label_3.setGeometry(QtCore.QRect(10, 40, 111, 16))
        self.label_3.setObjectName("label_3")
        self.speedButton = QtWidgets.QPushButton(self.groupBox_3)
        self.speedButton.setGeometry(QtCore.QRect(280, 40, 101, 23))
        self.speedButton.setObjectName("speedButton")
        self.groupBox_4 = QtWidgets.QGroupBox(Form)
        self.groupBox_4.setGeometry(QtCore.QRect(540, 730, 191, 101))
        self.groupBox_4.setObjectName("groupBox_4")
        self.blackwhiteButton = QtWidgets.QPushButton(self.groupBox_4)
        self.blackwhiteButton.setGeometry(QtCore.QRect(40, 30, 101, 21))
        self.blackwhiteButton.setObjectName("blackwhiteButton")
        self.saveButton = QtWidgets.QPushButton(Form)
        self.saveButton.setGeometry(QtCore.QRect(950, 0, 71, 41))
        self.saveButton.setObjectName("saveButton")
        self.redoButton = QtWidgets.QPushButton(Form)
        self.redoButton.setGeometry(QtCore.QRect(870, 0, 41, 41))
        self.redoButton.setText("")
        self.redoButton.setObjectName("redoButton")
        self.undoButton = QtWidgets.QPushButton(Form)
        self.undoButton.setGeometry(QtCore.QRect(810, 0, 41, 41))
        self.undoButton.setText("")
        self.undoButton.setObjectName("undoButton")

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.groupBox.setTitle(_translate("Form", "Cut"))
        self.label.setText(_translate("Form", "Start"))
        self.label_2.setText(_translate("Form", "End"))
        self.cutButton.setText(_translate("Form", "Cut"))
        self.OpenButton.setText(_translate("Form", "Open"))
        self.groupBox_2.setTitle(_translate("Form", "Mirror video"))
        self.mirror_xButton.setText(_translate("Form", "Mirror x"))
        self.mirror_yButton.setText(_translate("Form", "Mirror y"))
        self.groupBox_3.setTitle(_translate("Form", "Change speed"))
        self.label_3.setText(_translate("Form", "Coefficient of speed"))
        self.speedButton.setText(_translate("Form", "Change speed"))
        self.groupBox_4.setTitle(_translate("Form", "Blackwhite filter"))
        self.blackwhiteButton.setText(_translate("Form", "Apply filter"))
        self.saveButton.setText(_translate("Form", "Save"))
예제 #25
0
class Ui_main(object):
    def setupUi(self, main):
        main.setObjectName("main")
        main.resize(1024, 768)
        main.setContextMenuPolicy(QtCore.Qt.NoContextMenu)
        main.setAcceptDrops(False)
        main.setAutoFillBackground(False)
        self.verticalLayoutWidget = QtWidgets.QWidget(main)
        self.verticalLayoutWidget.setGeometry(QtCore.QRect(0, 10, 1021, 80))
        self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
        self.titleLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
        self.titleLayout.setSizeConstraint(QtWidgets.QLayout.SetMaximumSize)
        self.titleLayout.setContentsMargins(0, 0, 0, 0)
        self.titleLayout.setSpacing(0)
        self.titleLayout.setObjectName("titleLayout")
        self.title = QtWidgets.QLabel(self.verticalLayoutWidget)
        self.title.setEnabled(True)
        font = QtGui.QFont()
        font.setPointSize(26)
        font.setBold(True)
        font.setWeight(75)
        self.title.setFont(font)
        self.title.setTextFormat(QtCore.Qt.AutoText)
        self.title.setAlignment(QtCore.Qt.AlignCenter)
        self.title.setObjectName("title")
        self.titleLayout.addWidget(self.title)
        self.verticalLayoutWidget_2 = QtWidgets.QWidget(main)
        self.verticalLayoutWidget_2.setGeometry(QtCore.QRect(
            50, 130, 371, 271))
        self.verticalLayoutWidget_2.setObjectName("verticalLayoutWidget_2")
        self.menuLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget_2)
        self.menuLayout.setSizeConstraint(QtWidgets.QLayout.SetMaximumSize)
        self.menuLayout.setContentsMargins(0, 0, 0, 0)
        self.menuLayout.setSpacing(0)
        self.menuLayout.setObjectName("menuLayout")
        self.selectButton = QtWidgets.QPushButton(self.verticalLayoutWidget_2)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.selectButton.sizePolicy().hasHeightForWidth())
        self.selectButton.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setPointSize(10)
        self.selectButton.setFont(font)
        self.selectButton.setObjectName("selectButton")
        self.menuLayout.addWidget(self.selectButton)
        self.heatmap = QtWidgets.QCheckBox(self.verticalLayoutWidget_2)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.heatmap.sizePolicy().hasHeightForWidth())
        self.heatmap.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.heatmap.setFont(font)
        self.heatmap.setObjectName("heatmap")
        self.menuLayout.addWidget(self.heatmap)
        self.movementline = QtWidgets.QCheckBox(self.verticalLayoutWidget_2)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.movementline.sizePolicy().hasHeightForWidth())
        self.movementline.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.movementline.setFont(font)
        self.movementline.setObjectName("movementline")
        self.menuLayout.addWidget(self.movementline)
        self.movementheatmap = QtWidgets.QCheckBox(self.verticalLayoutWidget_2)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.movementheatmap.sizePolicy().hasHeightForWidth())
        self.movementheatmap.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.movementheatmap.setFont(font)
        self.movementheatmap.setObjectName("movementheatmap")
        self.menuLayout.addWidget(self.movementheatmap)
        self.counting = QtWidgets.QCheckBox(self.verticalLayoutWidget_2)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.counting.sizePolicy().hasHeightForWidth())
        self.counting.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.counting.setFont(font)
        self.counting.setObjectName("counting")
        self.menuLayout.addWidget(self.counting)
        self.submitButton = QtWidgets.QPushButton(self.verticalLayoutWidget_2)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.submitButton.sizePolicy().hasHeightForWidth())
        self.submitButton.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setPointSize(10)
        self.submitButton.setFont(font)
        self.submitButton.setObjectName("submitButton")
        self.menuLayout.addWidget(self.submitButton)
        self.showWidget = QVideoWidget(main)
        self.showWidget.setGeometry(QtCore.QRect(500, 130, 480, 270))
        self.showWidget.setAutoFillBackground(False)
        self.showWidget.setObjectName("showWidget")
        self.widget_2 = QVideoWidget(main)
        self.widget_2.setGeometry(QtCore.QRect(500, 450, 480, 270))
        self.widget_2.setAutoFillBackground(False)
        self.widget_2.setObjectName("widget_2")
        self.horizontalLayoutWidget = QtWidgets.QWidget(main)
        self.horizontalLayoutWidget.setGeometry(QtCore.QRect(
            670, 400, 171, 51))
        self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget")
        self.peopleBox = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget)
        self.peopleBox.setContentsMargins(0, 0, 0, 0)
        self.peopleBox.setObjectName("peopleBox")
        self.peopleNo = QtWidgets.QLCDNumber(self.horizontalLayoutWidget)
        self.peopleNo.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.peopleNo.setSmallDecimalPoint(False)
        self.peopleNo.setSegmentStyle(QtWidgets.QLCDNumber.Filled)
        self.peopleNo.setObjectName("peopleNo")
        self.peopleBox.addWidget(self.peopleNo)
        self.peopleLabel = QtWidgets.QLabel(self.horizontalLayoutWidget)
        font = QtGui.QFont()
        font.setPointSize(11)
        self.peopleLabel.setFont(font)
        self.peopleLabel.setAlignment(QtCore.Qt.AlignCenter)
        self.peopleLabel.setObjectName("peopleLabel")
        self.peopleBox.addWidget(self.peopleLabel)

        self.retranslateUi(main)
        QtCore.QMetaObject.connectSlotsByName(main)

    def retranslateUi(self, main):
        _translate = QtCore.QCoreApplication.translate
        main.setWindowTitle(_translate("main", "Dialog"))
        self.title.setText(_translate("main", "[FTP] CCC System Beta"))
        self.selectButton.setText(_translate("main", "Select Video"))
        self.heatmap.setText(_translate("main", "Heatmap"))
        self.movementline.setText(_translate("main", "Movement line"))
        self.movementheatmap.setText(_translate("main", "Movement heatmap"))
        self.counting.setText(_translate("main", "Counting people"))
        self.submitButton.setText(_translate("main", "Submit"))
        self.peopleLabel.setText(_translate("main", "People"))
예제 #26
0
class Ui_ShadowRCNN(QWidget):
    def login(self, Dialog):
        self.login_dialog = login.Ui_Dialog()
        self.login_dialog.setupUi(Dialog)
        self.login_dialog.pushButton.clicked.connect(
            lambda: self.login_operation(Dialog))
        self.login_dialog.toolButton.clicked.connect(self.open_path)

    def open_path(self):
        param_path, _ = QFileDialog.getOpenFileName(QWidget(), "选择文件",
                                                    "../param",
                                                    "*.pth;;;All Files(*)")
        if param_path != '':
            self.login_dialog.lineEdit_3.setText(param_path)
            ######TODO 自定义参数的数据库连接

    def login_operation(self, Dialog):
        global RCNN_PATH
        success = False
        error = ''
        self.is_guest = False
        self.user_name = 'guest'
        self.user_id = -1
        self.param_id = 1

        if self.login_dialog.radioButton_2.isChecked():
            self.is_guest = True
            self.user_name = '游客'
            success = True
        if self.login_dialog.radioButton.isChecked():
            username = self.login_dialog.lineEdit.text()
            password = self.login_dialog.lineEdit_2.text()
            if username.strip() == '' or password.strip() == '':
                error = 'blank'
            else:
                results = db_select('select * from tb_user')
                for result in results:
                    if username == result[1]:
                        if password == result[2]:
                            self.user_name = username
                            self.user_id = result[0]
                            success = True
                            break
                        else:
                            error = 'wrong'
                            break
                if not success and error == '':
                    sql = 'insert into tb_user(username, password)values("%s", "%s")' % (
                        username, password)
                    db_insert(sql)
                    msg = QMessageBox.information(self, '提示',
                                                  '已为您自动注册用户名%s' % username,
                                                  QMessageBox.Ok,
                                                  QMessageBox.Ok)
                    self.user_name = username
                    sql = 'select * from tb_user order by user_id desc limit 1'
                    results = db_select(sql)
                    for result in results:
                        self.user_id = result[0]
                        print(self.user_id)
                    success = True
        if success:
            global IMAGE_PATH
            global VIDEO_PATH
            IMAGE_PATH = os.path.join(IMAGE_PATH, self.user_name)
            VIDEO_PATH = os.path.join(VIDEO_PATH, self.user_name)
            if not os.path.exists(IMAGE_PATH):
                os.makedirs(IMAGE_PATH)
            if not os.path.exists(VIDEO_PATH):
                os.makedirs(VIDEO_PATH)
            if self.login_dialog.lineEdit_3.text() != '默认参数':
                RCNN_PATH = self.login_dialog.lineEdit_3.text()
            Dialog.close()
            self.main_window = QMainWindow()
            self.setupUi(self.main_window)
            self.main_window.show()
        else:
            if error == 'blank':
                msg = QMessageBox.warning(self, '提示', '请输入正确的用户名与密码!',
                                          QMessageBox.Ok, QMessageBox.Ok)
            elif error == 'wrong':
                msg = QMessageBox.warning(self, '提示', '用户名或密码错误!',
                                          QMessageBox.Ok, QMessageBox.Ok)

    def setupUi(self, ShadowRCNN):
        ShadowRCNN.setObjectName("ShadowRCNN")
        ShadowRCNN.resize(1666, 900)
        self.centralwidget = QtWidgets.QWidget(ShadowRCNN)
        self.centralwidget.setObjectName("centralwidget")

        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(190, 40, 1280, 720))
        self.label.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
        self.label.setAlignment(QtCore.Qt.AlignCenter)
        self.label.setObjectName("label")
        self.label.setStyleSheet(
            "QLabel{background:white;}"
            "QLabel{color:rgb(300,300,300,120);font-size:20px;font-weight:bold;}"
        )

        self.label_name = QtWidgets.QLabel(self.centralwidget)
        self.label_name.setGeometry(QtCore.QRect(10, 5, 200, 40))
        self.label_name.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
        self.label_name.setObjectName("label")
        self.label_name.setStyleSheet(
            "QLabel{color:rgb(300,300,300,120);font-size:20px;font-weight:bold;}"
        )

        self.wgt_video = QVideoWidget(self.centralwidget)
        self.wgt_video.setGeometry(QtCore.QRect(190, 40, 1280, 720))
        self.player = QMediaPlayer()
        self.player.setVideoOutput(self.wgt_video)
        self.wgt_video.hide()
        self.wgt_video.setObjectName("widget")

        self.pushButton_play = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_play.setVisible(False)
        self.pushButton_play.setGeometry(QtCore.QRect(1513, 40, 80, 41))
        self.pushButton_play.setObjectName("pushButton")
        self.video_is_play = False
        self.pushButton_play.clicked.connect(self.video_play_change)

        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(100, 790, 161, 41))
        self.pushButton.setObjectName("pushButton")
        self.pushButton.clicked.connect(self.open_image)

        self.pushButton1 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton1.setGeometry(QtCore.QRect(883, 790, 161, 41))
        self.pushButton1.setObjectName("pushButton")
        self.pushButton1.clicked.connect(self.predict)

        self.pushButton_camera = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_camera.setGeometry(QtCore.QRect(622, 790, 161, 41))
        self.pushButton_camera.setObjectName("pushButton")
        self.pushButton_camera.clicked.connect(self.camera)

        self.check_continue = QtWidgets.QCheckBox(self.centralwidget)
        self.check_continue.setGeometry(QtCore.QRect(622, 825, 100, 41))
        self.check_continue.setObjectName("checkButton")
        self.check_continue.stateChanged.connect(self.continue_camera)

        self.label1 = QtWidgets.QLabel(self.centralwidget)
        self.label1.setGeometry(QtCore.QRect(720, 825, 30, 41))
        self.label1.setObjectName("label")

        self.line_second = QtWidgets.QLineEdit(self.centralwidget)
        self.line_second.setGeometry(QtCore.QRect(752, 834, 20, 20))
        self.line_second.setObjectName("lineEdit")
        self.line_second.setEnabled(False)

        self.label2 = QtWidgets.QLabel(self.centralwidget)
        self.label2.setGeometry(QtCore.QRect(774, 825, 30, 41))
        self.label2.setObjectName("label")

        self.pushButton_video = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_video.setGeometry(QtCore.QRect(361, 790, 161, 41))
        self.pushButton_video.setObjectName("pushButton")
        self.pushButton_video.clicked.connect(self.open_video)

        self.pushButton_delete = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_delete.setGeometry(QtCore.QRect(1144, 790, 161, 41))
        self.pushButton_delete.setObjectName("pushButton")
        self.pushButton_delete.clicked.connect(self.delete)

        self.pushButton_history = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_history.setGeometry(QtCore.QRect(1405, 790, 161, 41))
        self.pushButton_history.setObjectName("pushButton")
        self.pushButton_history.clicked.connect(self.history)

        ShadowRCNN.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(ShadowRCNN)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 1600, 26))
        self.menubar.setAutoFillBackground(False)
        self.menubar.setObjectName("menubar")
        ShadowRCNN.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(ShadowRCNN)
        self.statusbar.setObjectName("statusbar")
        ShadowRCNN.setStatusBar(self.statusbar)

        self.timer = QTimer()
        self.retranslateUi(ShadowRCNN)

        if self.is_guest:
            self.pushButton_delete.setEnabled(False)
            self.pushButton_history.setEnabled(False)

        QtCore.QMetaObject.connectSlotsByName(ShadowRCNN)

    def retranslateUi(self, ShadowRCNN):
        _translate = QtCore.QCoreApplication.translate
        ShadowRCNN.setWindowTitle(_translate("ShadowRCNN", "ShadowRCNN"))
        self.label.setText(_translate("ShadowRCNN", "请选择图片"))
        self.pushButton.setText(_translate("ShadowRCNN", "选择图片"))
        self.pushButton1.setText(_translate("ShadowRCNN", "开始预测"))
        self.pushButton_play.setText(_translate("ShadowRCNN", "暂停"))
        self.pushButton_camera.setText(_translate("ShadowRCNN", "拍摄照片"))
        self.pushButton_video.setText(_translate("ShadowRCNN", "选择视频"))
        self.pushButton_delete.setText(_translate("ShadowRCNN", "删除缓存"))
        self.pushButton_history.setText(_translate("ShadowRCNN", "历史信息"))
        self.check_continue.setText(_translate("ShadowRCNN", "连拍模式"))
        self.label1.setText(_translate("ShadowRCNN", "每秒"))
        self.line_second.setText(_translate("ShadowRCNN", "1"))
        self.label2.setText(_translate("ShadowRCNN", "张"))
        self.label_name.setText(
            _translate("ShadowRCNN", "欢迎使用," + self.user_name))

    def open_image(self):
        self.image_choose_dialog = media_dialog(media_type='图片')
        self.image_choose_dialog.show()
        self.image_choose_dialog._signal.connect(self.get_image)

    def get_image(self, imgName):
        self.label.clear()
        self.player.setMedia(QMediaContent())
        self.wgt_video.hide()
        self.label.show()
        self.pushButton_play.setVisible(False)
        jpg = QtGui.QPixmap(imgName).scaled(self.label.width(),
                                            self.label.height())
        if imgName != '':
            self.label.setPixmap(jpg)
            self.statusbar.showMessage('当前图片:' + imgName)
        PARAMS['imgPath'] = imgName
        self.image_choose_dialog.close()

    def ARP_predict(self, mode='image'):
        shadow_write_path, shadow_write_name = os.path.split(PARAMS['imgPath'])
        shadow_write_name = shadow_write_name.split('.')[0] + '_shadow_' \
                            + datetime.datetime.now().strftime('%Y%m%d%H%M%S') + '.' \
                            + shadow_write_name.split('.')[1]
        self.shadow_write_path = os.path.join(shadow_write_path,
                                              shadow_write_name)
        print(self.shadow_write_path)
        if mode == 'image':
            manager = multiprocessing.Manager()
            return_dict = manager.dict()
            p = multiprocessing.Process(target=ARP_predict,
                                        args=(return_dict, PARAMS['imgPath'],
                                              ARP_MODEL_NAME, ARP_PATH,
                                              SHADOW_PERCENT))
            p.start()
            p.join()

            PARAMS['ARP_result'] = return_dict.values()[0]
            cv2.imwrite(self.shadow_write_path, PARAMS['ARP_result'])
            if 'shadow_write_path' not in PARAMS.keys():
                PARAMS['shadow_write_path'] = []
            PARAMS['shadow_write_path'].append(self.shadow_write_path)
            PARAMS['all_file_path'].append(self.shadow_write_path)
        elif mode == 'video':
            manager = multiprocessing.Manager()
            return_dict = manager.dict()
            p = multiprocessing.Process(
                target=ARP_predict,
                args=(return_dict, PARAMS['imgPath'], ARP_MODEL_NAME, ARP_PATH,
                      SHADOW_PERCENT, 'video', self.shadow_write_path))
            p.start()
            p.join()

            PARAMS['all_file_path'].append(self.shadow_write_path)

    def rcnn_predict(self, mode='image'):
        rcnn_write_path, rcnn_write_name = os.path.split(PARAMS['imgPath'])
        rcnn_write_name = rcnn_write_name.split('.')[0] + '_rcnn_' \
                          + datetime.datetime.now().strftime('%Y%m%d%H%M%S') \
                          + '.' + rcnn_write_name.split('.')[1]
        self.rcnn_write_path = os.path.join(rcnn_write_path, rcnn_write_name)
        print(self.rcnn_write_path)
        if mode == 'image':
            manager = multiprocessing.Manager()
            return_dict = manager.dict()
            p = multiprocessing.Process(target=rcnn_predict,
                                        args=(return_dict,
                                              PARAMS['ARP_result'], False,
                                              RCNN_PATH))
            p.start()
            p.join()
            PARAMS['RCNN_result'] = return_dict.values()[0]
            if PARAMS['RCNN_result'] is not None:
                cv2.imwrite(self.rcnn_write_path, PARAMS['RCNN_result'])
                if 'rcnn_write_path' not in PARAMS.keys():
                    PARAMS['rcnn_write_path'] = []
                PARAMS['rcnn_write_path'].append(self.rcnn_write_path)
                PARAMS['all_file_path'].append(self.rcnn_write_path)
                jpg = QtGui.QPixmap(self.rcnn_write_path).scaled(
                    self.label.width(), self.label.height())
                self.label.setPixmap(jpg)
        elif mode == 'video':
            manager = multiprocessing.Manager()
            return_dict = manager.dict()
            p = multiprocessing.Process(
                target=rcnn_predict,
                args=(return_dict, self.shadow_write_path, False, RCNN_PATH,
                      'video', self.rcnn_write_path))
            p.start()
            p.join()

            PARAMS['all_file_path'].append(self.rcnn_write_path)
            self.player.setMedia(
                QMediaContent(QUrl.fromLocalFile(self.rcnn_write_path)))
            self.player.play()
            self.video_is_play = True
            self.pushButton_play.setText('暂停')
        if not self.is_guest:
            sql = 'insert into tb_record(path,shadow,type,user_id,param_id,time)values("%s","%s","%s",%s,%s,"%s")' \
                  % (str(self.rcnn_write_path).replace('\\', '/'), str(self.shadow_write_path).replace('\\', '/'),
                     mode, self.user_id, self.param_id,
                     str(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')))
            db_insert(sql)

    def predict(self):
        if 'imgPath' in PARAMS.keys():
            self.msgDialog = msg_dialog()
            self.msgDialog.show()
            self.timer = QTimer()
            self.timer.timeout.connect(self.start_connect)
            self.timer.start(500)
            self.statusbar.showMessage('预测完成')
        else:
            msg = QMessageBox.information(self, '提示', '请先选择图片或视频',
                                          QMessageBox.Yes, QMessageBox.Yes)

    def continue_camera(self, state):
        # state 0 没选中 1 选中
        if state == 0:
            self.pushButton_camera.setText('拍摄照片')
            self.line_second.setEnabled(False)
        elif state == 2:
            self.pushButton_camera.setText('开始连拍')
            self.line_second.setEnabled(True)

    def camera(self):
        self.label.clear()
        self.player.setMedia(QMediaContent())
        self.wgt_video.hide()
        self.label.show()
        self.pushButton_play.setVisible(False)
        if self.check_continue.checkState() != QtCore.Qt.Checked:
            self.pushButton_camera.setText('按Q拍照')
            cap = cv2.VideoCapture(0)
            while True:
                ret, frame = cap.read()
                # show a frame
                cv2.imshow("Capture", frame)

                if cv2.waitKey(1) == ord('q'):
                    cap_name = IMAGE_PATH + '/capimg_' + str(
                        datetime.datetime.now().strftime(
                            '%Y%m%d%H%M%S%f')) + '.jpg'
                    cv2.imwrite(cap_name, frame)
                    jpg = QtGui.QPixmap(cap_name).scaled(
                        self.label.width(), self.label.height())
                    self.label.setPixmap(jpg)
                    cap.release()  # 释放摄像头
                    cv2.destroyAllWindows()  # 删除建立的全部窗口
                    PARAMS['imgPath'] = cap_name
                    PARAMS['all_file_path'].append(cap_name)
                    self.pushButton_camera.setText('拍摄照片')
                    break

                if cv2.getWindowProperty("Capture", cv2.WND_PROP_AUTOSIZE) < 1:
                    cv2.destroyAllWindows()
                    self.pushButton_camera.setText('拍摄照片')
                    break
        else:
            self.now_continue_num = 0
            self.pushButton_camera.setEnabled(False)
            self.pushButton_camera.setText('正在连拍')
            per_second_photo_num = self.line_second.text()
            self.msgDialog = msg_dialog(msg='准备开始连拍')
            self.cap = cv2.VideoCapture(0)
            self.msgDialog.show()
            self.msgDialog.move(1200, 500)
            self.timer = QTimer()
            self.continue_list = []
            self.timer.timeout.connect(self.start_continue_photo)
            self.timer.start(int(1000 / int(per_second_photo_num)))

    def start_continue_photo(self):
        self.now_continue_num += 1
        self.msgDialog.setWindowTitle('正在连拍')
        self.msgDialog.msg_dialog.label.setText('正在拍摄第 {}/9 张...'.format(
            self.now_continue_num))
        # 拍照
        ret, frame = self.cap.read()
        # show a frame
        cv2.imshow("Capture", frame)
        image_name = IMAGE_PATH + '/capimg_' + str(
            datetime.datetime.now().strftime('%Y%m%d%H%M%S%f')) + '.jpg'
        cv2.imwrite(image_name, frame)
        PARAMS['all_file_path'].append(image_name)
        self.continue_list.append(image_name)

        # 结束拍照
        if self.now_continue_num == 9:
            self.timer.stop()
            self.msgDialog.msg_dialog.label.setText('正在处理结果')
            self.pushButton_camera.setText('开始连拍')
            self.pushButton_camera.setEnabled(True)
            self.msgDialog.close()
            cv2.destroyAllWindows()
            self.cap.release()
            # 横向拼接结果
            continue_list_middle = [
                np.hstack([
                    cv2.imread(self.continue_list[0], 1),
                    cv2.imread(self.continue_list[1], 1),
                    cv2.imread(self.continue_list[2], 1)
                ]),
                np.hstack([
                    cv2.imread(self.continue_list[3], 1),
                    cv2.imread(self.continue_list[4], 1),
                    cv2.imread(self.continue_list[5], 1)
                ]),
                np.hstack([
                    cv2.imread(self.continue_list[6], 1),
                    cv2.imread(self.continue_list[7], 1),
                    cv2.imread(self.continue_list[8], 1)
                ])
            ]
            # 纵向拼接
            continue_photo = np.vstack([
                continue_list_middle[0], continue_list_middle[1],
                continue_list_middle[2]
            ])
            # 展示结果
            continue_photo_name = os.path.join(
                IMAGE_PATH, self.continue_list[0][:-10] + '_9in1.jpg')
            PARAMS['imgPath'] = continue_photo_name
            PARAMS['all_file_path'].append(continue_photo_name)
            cv2.imwrite(continue_photo_name, continue_photo)
            jpg = QtGui.QPixmap(continue_photo_name).scaled(
                self.label.width(), self.label.height())
            self.label.setPixmap(jpg)

    def open_video(self):
        self.video_choose_dialog = media_dialog(media_type='视频')
        self.video_choose_dialog.show()
        self.video_choose_dialog._signal.connect(self.get_video)

    def get_video(self, videoName):
        if videoName != '':
            self.label.clear()
            self.player.setMedia(QMediaContent())
            self.wgt_video.show()
            self.label.hide()
            self.player.setMedia(QMediaContent(QUrl.fromLocalFile(videoName)))
            self.player.play()
            self.video_is_play = True
            self.pushButton_play.setVisible(True)
            self.statusbar.showMessage('当前视频:' + videoName)
        PARAMS['imgPath'] = videoName
        self.video_choose_dialog.close()

    def video_play_change(self):
        self.video_is_play = bool(1 - self.video_is_play)
        if self.video_is_play:
            self.player.play()
            self.pushButton_play.setText('暂停')
        else:
            self.player.pause()
            self.pushButton_play.setText('播放')

    def delete(self):
        file_num = 0
        for file_name in PARAMS['all_file_path']:
            if os.path.exists(file_name):
                os.remove(file_name)
                if '_rcnn' in file_name:
                    sql = 'delete from tb_record where path="%s"' % file_name.replace(
                        '\\', '/')
                    db_delete(sql)
                file_num += 1
        self.statusbar.showMessage('缓存清除成功,共' + str(file_num) + '个文件')
        self.label.clear()
        self.player.setMedia(QMediaContent())

    def history(self):
        self.his_dialog = history_dialog(self.user_id, self.user_name)
        self.his_dialog.show()

    def start_connect(self):
        if str(PARAMS['imgPath']).endswith(('png', 'jpg')):
            self.ARP_predict()
            self.rcnn_predict()
        else:
            self.ARP_predict(mode='video')
            self.rcnn_predict(mode='video')

        self.timer.stop()
        self.msgDialog.close()
class DetectionReviewerWindowView(QMainWindow, BaseView):
    def __init__(self,
                 window_height=Config.DETECTION_REVIEWER_WINDOW_HEIGHT,
                 window_width=Config.DETECTION_REVIEWER_WINDOW_WIDTH):
        super(QMainWindow, self).__init__(parent=None)
        self.setObjectName("Detection reviewer")
        self.move(
            self.__percentage_of_width(550),  # margin-left
            self.__percentage_of_height(10)  # margin-top
        )
        self.resize(window_height, window_width)
        self.setMinimumSize(QtCore.QSize(window_height, window_width))
        self.central_widget = QtWidgets.QWidget(self)
        self.central_widget.setObjectName("central_widget")

        self.video_player_widget = QVideoWidget(self.central_widget)

        self.video_player_widget.setObjectName("video_player_widget")

        self.verticalLayoutWidget = QtWidgets.QWidget(self.central_widget)

        self.verticalLayoutWidget.setObjectName("__base_layout")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout.setObjectName("__menu_buttons_layout")
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")

        self.time_into_video_counter = QtWidgets.QLCDNumber(
            self.verticalLayoutWidget)
        self.time_into_video_counter.setObjectName("time_into_video_counter")

        self.horizontalLayout_2.addWidget(self.time_into_video_counter)

        self.video_position_slider = QtWidgets.QSlider(
            self.verticalLayoutWidget)
        self.video_position_slider.setOrientation(QtCore.Qt.Horizontal)
        self.video_position_slider.setObjectName("video_position_slider")

        self.horizontalLayout_2.addWidget(self.video_position_slider)

        self.time_left_counter = QtWidgets.QLCDNumber(
            self.verticalLayoutWidget)
        self.time_left_counter.setObjectName("time_left_counter")

        self.horizontalLayout_2.addWidget(self.time_left_counter)
        self.verticalLayout.addLayout(self.horizontalLayout_2)
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.spacer_item = QtWidgets.QSpacerItem(
            self.__percentage_of_width(1.5),  # margin - left
            self.__percentage_of_height(5),  # margin - top
            QtWidgets.QSizePolicy.Expanding,
            QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(self.spacer_item)

        self.skip_to_start_of_video_button = QtWidgets.QPushButton(
            self.verticalLayoutWidget)
        self.skip_to_start_of_video_button.setObjectName(
            "skip_to_start_of_video_button")

        self.horizontalLayout.addWidget(self.skip_to_start_of_video_button)
        self.spacer_item_1 = QtWidgets.QSpacerItem(
            self.__percentage_of_width(1.5),  # margin - left
            self.__percentage_of_height(5),  # margin - top
            QtWidgets.QSizePolicy.Expanding,
            QtWidgets.QSizePolicy.Minimum)

        self.horizontalLayout.addItem(self.spacer_item_1)

        self.play_video_button = QtWidgets.QPushButton(
            self.verticalLayoutWidget)
        self.play_video_button.setObjectName("play_video_button")

        self.horizontalLayout.addWidget(self.play_video_button)
        self.spacer_item_2 = QtWidgets.QSpacerItem(
            self.__percentage_of_width(1.5),  # margin - left
            self.__percentage_of_height(5),  # margin - top
            QtWidgets.QSizePolicy.Expanding,
            QtWidgets.QSizePolicy.Minimum)

        self.horizontalLayout.addItem(self.spacer_item_2)

        self.skip_to_end_of_video_button = QtWidgets.QPushButton(
            self.verticalLayoutWidget)
        self.skip_to_end_of_video_button.setObjectName(
            "skip_to_end_of_video_button")

        self.horizontalLayout.addWidget(self.skip_to_end_of_video_button)
        self.spacer_item_3 = QtWidgets.QSpacerItem(
            self.__percentage_of_width(1.5),  # margin - left
            self.__percentage_of_height(5),  # margin - top
            QtWidgets.QSizePolicy.Expanding,
            QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(self.spacer_item_3)
        self.verticalLayout.addLayout(self.horizontalLayout)
        self.detection_vertical_layout = QtWidgets.QWidget(self.central_widget)

        self.detection_vertical_layout.setObjectName(
            "detection_vertical_layout")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(
            self.detection_vertical_layout)
        self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")

        self.detection_list_scrollable_area = QScrollArea()
        self.horizontalLayout_3.addWidget(self.detection_list_scrollable_area)
        self.detection_list_scrollable_area.setWidgetResizable(True)

        scroll_content = QWidget(self.detection_list_scrollable_area)
        self.detection_list_scrollable_area.setWidget(scroll_content)
        self.verticalLayout_2.addLayout(self.horizontalLayout_3)

        self.setCentralWidget(self.central_widget)
        self.menu_bar = QtWidgets.QMenuBar()

        self.menu_bar.setObjectName("menu_bar")
        self.setMenuBar(self.menu_bar)

        self.status_bar = QtWidgets.QStatusBar(self)
        self.status_bar.setObjectName("status_bar")
        self.setStatusBar(self.status_bar)

        self.mediaPlayer = QMediaPlayer(None, QMediaPlayer.VideoSurface)

        self.__set_text_and_icons(self)
        self.__update_geometry()

    def __update_geometry(self):
        self.video_player_widget.setGeometry(
            QtCore.QRect(
                self.__percentage_of_width(1.5),  # margin - left
                self.__percentage_of_height(5),  # margin - top
                self.__percentage_of_width(50),  # width
                self.__percentage_of_height(50)  # height
            ))
        self.verticalLayoutWidget.setGeometry(
            QtCore.QRect(
                self.__percentage_of_width(1.5),  # margin - left
                self.__percentage_of_height(60),  # margin - top
                self.__percentage_of_width(50),  # width
                self.__percentage_of_height(10)  # height
            ))

        self.spacer_item = QtWidgets.QSpacerItem(
            self.__percentage_of_width(1.5),  # margin - left
            self.__percentage_of_height(5),  # margin - top
            QtWidgets.QSizePolicy.Expanding,
            QtWidgets.QSizePolicy.Minimum)
        self.spacer_item_1 = QtWidgets.QSpacerItem(
            self.__percentage_of_width(1.5),  # margin - left
            self.__percentage_of_height(5),  # margin - top
            QtWidgets.QSizePolicy.Expanding,
            QtWidgets.QSizePolicy.Minimum)
        self.spacer_item_2 = QtWidgets.QSpacerItem(
            self.__percentage_of_width(1.5),  # margin - left
            self.__percentage_of_height(5),  # margin - top
            QtWidgets.QSizePolicy.Expanding,
            QtWidgets.QSizePolicy.Minimum)
        self.spacer_item_3 = QtWidgets.QSpacerItem(
            self.__percentage_of_width(1.5),  # margin - left
            self.__percentage_of_height(5),  # margin - top
            QtWidgets.QSizePolicy.Expanding,
            QtWidgets.QSizePolicy.Minimum)
        self.detection_vertical_layout.setGeometry(
            QtCore.QRect(
                self.__percentage_of_width(55),  # margin - left
                self.__percentage_of_height(5),  # margin - top
                self.__percentage_of_width(40),  # width
                self.__percentage_of_height(80)  # height
            ))

    def __percentage_of_height(self, percentage):
        return (percentage / 100) * self.geometry().height()

    def __percentage_of_width(self, percentage):
        return (percentage / 100) * self.geometry().width()

    def __set_text_and_icons(self, main_window):
        _translate = QtCore.QCoreApplication.translate
        main_window.setWindowTitle(
            _translate("Detection reviewer", "Detection reviewer"))
        icon_object = QtWidgets.QWidget(main_window).style()

        self.skip_to_start_of_video_button.setIcon(
            icon_object.standardIcon(QStyle.SP_MediaSkipBackward))
        self.play_video_button.setIcon(
            icon_object.standardIcon(QStyle.SP_MediaPlay))
        self.skip_to_end_of_video_button.setIcon(
            icon_object.standardIcon(QStyle.SP_MediaSkipForward))

    def resizeEvent(self, event):
        self.__update_geometry()  # call your update method
        QtWidgets.QMainWindow.resizeEvent(self, event)

    def get_video_widget(self):
        return self.video_player_widget

    def get_media_player(self):
        return self.mediaPlayer

    def get_play_button(self):
        return self.play_video_button

    def get_skip_backward_button(self):
        return self.skip_to_start_of_video_button

    def get_skip_forward_button(self):
        return self.skip_to_end_of_video_button

    def get_position_slider(self):
        return self.video_position_slider

    def get_time_left_counter(self):
        return self.time_left_counter

    def get_time_into_video_counter(self):
        return self.time_into_video_counter

    def get_menu_bar(self):
        return self.menu_bar

    def get_detection_event_scroll_area(self):
        return self.detection_list_scrollable_area

    def get_detection_vertical_layout(self):
        return self.detection_vertical_layout
예제 #28
0
파일: sqlBlind.py 프로젝트: DelinQu/IOT
class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(1260, 721)
        Dialog.setStyleSheet("")
        self.WidgetWindow = QtWidgets.QWidget(Dialog)
        self.WidgetWindow.setGeometry(QtCore.QRect(0, 0, 1261, 731))
        self.WidgetWindow.setStyleSheet("QWidget#WidgetWindow{background:rgb(0, 170, 255)}")
        self.WidgetWindow.setObjectName("WidgetWindow")
        self.tabMenu = QtWidgets.QTabWidget(self.WidgetWindow)
        self.tabMenu.setGeometry(QtCore.QRect(20, 50, 871, 581))
        self.tabMenu.setStyleSheet("background-image: url(./image/hw2.png);")
        self.tabMenu.setObjectName("tabMenu")
        self.tab = QtWidgets.QWidget()
        self.tab.setObjectName("tab")
        self.player1 = QVideoWidget(self.tab)
        self.player1.setGeometry(QtCore.QRect(0, 0, 871, 541))
        self.player1.setStyleSheet("background-image:url(./image/hw2.png);\n"
"")
        self.player1.setObjectName("player1")
        self.tabMenu.addTab(self.tab, "")
        self.tab_2 = QtWidgets.QWidget()
        self.tab_2.setObjectName("tab_2")
        self.player2 = QVideoWidget(self.tab_2)
        self.player2.setGeometry(QtCore.QRect(0, 0, 871, 541))
        self.player2.setStyleSheet("background-image: url(./image/hw3.png);")
        self.player2.setObjectName("player2")
        self.tabMenu.addTab(self.tab_2, "")
        self.clearButtom = QtWidgets.QPushButton(self.WidgetWindow)
        self.clearButtom.setGeometry(QtCore.QRect(410, 640, 88, 42))
        self.clearButtom.setObjectName("clearButtom")
        self.layoutWidget = QtWidgets.QWidget(self.WidgetWindow)
        self.layoutWidget.setGeometry(QtCore.QRect(910, 80, 321, 44))
        self.layoutWidget.setObjectName("layoutWidget")
        self.horizontalLayout = QtWidgets.QHBoxLayout(self.layoutWidget)
        self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.startButtom = QtWidgets.QPushButton(self.layoutWidget)
        self.startButtom.setObjectName("startButtom")
        self.horizontalLayout.addWidget(self.startButtom)
        self.progressBar = QtWidgets.QProgressBar(self.layoutWidget)
        self.progressBar.setProperty("value", 0)
        self.progressBar.setObjectName("progressBar")
        self.horizontalLayout.addWidget(self.progressBar)
        self.processLabel = QtWidgets.QLabel(self.layoutWidget)
        self.processLabel.setMinimumSize(QtCore.QSize(52, 0))
        self.processLabel.setTextFormat(QtCore.Qt.PlainText)
        self.processLabel.setObjectName("processLabel")
        self.horizontalLayout.addWidget(self.processLabel)
        self.titleLable = QtWidgets.QLabel(self.WidgetWindow)
        self.titleLable.setGeometry(QtCore.QRect(330, 20, 601, 31))
        self.titleLable.setStyleSheet("font: 25pt \"楷体\";")
        self.titleLable.setObjectName("titleLable")
        self.table1 = QtWidgets.QTableWidget(self.WidgetWindow)
        self.table1.setGeometry(QtCore.QRect(910, 230, 321, 181))
        self.table1.setObjectName("table1")
        self.table1.setColumnCount(1)
        self.table1.setRowCount(3)
        item = QtWidgets.QTableWidgetItem()
        self.table1.setVerticalHeaderItem(0, item)
        item = QtWidgets.QTableWidgetItem()
        self.table1.setVerticalHeaderItem(1, item)
        item = QtWidgets.QTableWidgetItem()
        self.table1.setVerticalHeaderItem(2, item)
        item = QtWidgets.QTableWidgetItem()
        self.table1.setHorizontalHeaderItem(0, item)
        self.table1.horizontalHeader().setDefaultSectionSize(250)
        self.table1.horizontalHeader().setMinimumSectionSize(33)
        self.table1.verticalHeader().setDefaultSectionSize(46)
        self.table2 = QtWidgets.QTableWidget(self.WidgetWindow)
        self.table2.setGeometry(QtCore.QRect(910, 480, 321, 141))
        self.table2.setObjectName("table2")
        self.table2.setColumnCount(1)
        self.table2.setRowCount(2)
        item = QtWidgets.QTableWidgetItem()
        self.table2.setVerticalHeaderItem(0, item)
        item = QtWidgets.QTableWidgetItem()
        self.table2.setVerticalHeaderItem(1, item)
        item = QtWidgets.QTableWidgetItem()
        self.table2.setHorizontalHeaderItem(0, item)
        self.table2.horizontalHeader().setDefaultSectionSize(250)
        self.table2.horizontalHeader().setMinimumSectionSize(33)
        self.table2.verticalHeader().setDefaultSectionSize(46)
        self.label = QtWidgets.QLabel(self.WidgetWindow)
        self.label.setGeometry(QtCore.QRect(910, 200, 62, 26))
        self.label.setObjectName("label")
        self.label_2 = QtWidgets.QLabel(self.WidgetWindow)
        self.label_2.setGeometry(QtCore.QRect(910, 450, 62, 26))
        self.label_2.setObjectName("label_2")
        self.Digit = QtWidgets.QLCDNumber(self.WidgetWindow)
        self.Digit.setGeometry(QtCore.QRect(910, 140, 101, 51))
        self.Digit.setStyleSheet("color: rgb(255, 85, 0);")
        self.Digit.setSmallDecimalPoint(True)
        self.Digit.setDigitCount(3)
        self.Digit.setProperty("value", 99.0)
        self.Digit.setObjectName("Digit")
        self.Digit_2 = QtWidgets.QLCDNumber(self.WidgetWindow)
        self.Digit_2.setGeometry(QtCore.QRect(1010, 790, 64, 23))
        self.Digit_2.setObjectName("Digit_2")
        self.label_3 = QtWidgets.QLabel(self.WidgetWindow)
        self.label_3.setGeometry(QtCore.QRect(1030, 150, 62, 26))
        self.label_3.setObjectName("label_3")
        self.layoutWidget1 = QtWidgets.QWidget(Dialog)
        self.layoutWidget1.setGeometry(QtCore.QRect(0, 0, 2, 2))
        self.layoutWidget1.setObjectName("layoutWidget1")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.layoutWidget1)
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout.setObjectName("verticalLayout")
        self.layoutWidget2 = QtWidgets.QWidget(Dialog)
        self.layoutWidget2.setGeometry(QtCore.QRect(0, 0, 2, 2))
        self.layoutWidget2.setObjectName("layoutWidget2")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.layoutWidget2)
        self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.splitter = QtWidgets.QSplitter(Dialog)
        self.splitter.setGeometry(QtCore.QRect(0, 0, 0, 0))
        self.splitter.setOrientation(QtCore.Qt.Horizontal)
        self.splitter.setObjectName("splitter")
        self.splitter_2 = QtWidgets.QSplitter(Dialog)
        self.splitter_2.setGeometry(QtCore.QRect(0, 0, 0, 0))
        self.splitter_2.setOrientation(QtCore.Qt.Vertical)
        self.splitter_2.setObjectName("splitter_2")
        self.layoutWidget3 = QtWidgets.QWidget(Dialog)
        self.layoutWidget3.setGeometry(QtCore.QRect(0, 0, 2, 2))
        self.layoutWidget3.setObjectName("layoutWidget3")
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.layoutWidget3)
        self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.layoutWidget4 = QtWidgets.QWidget(Dialog)
        self.layoutWidget4.setGeometry(QtCore.QRect(0, 0, 2, 2))
        self.layoutWidget4.setObjectName("layoutWidget4")
        self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.layoutWidget4)
        self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.layoutWidget5 = QtWidgets.QWidget(Dialog)
        self.layoutWidget5.setGeometry(QtCore.QRect(0, 0, 2, 2))
        self.layoutWidget5.setObjectName("layoutWidget5")
        self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.layoutWidget5)
        self.verticalLayout_4.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_4.setObjectName("verticalLayout_4")

        self.retranslateUi(Dialog)
        self.tabMenu.setCurrentIndex(0)
        self.clearButtom.clicked.connect(self.table2.clearContents)
        self.clearButtom.clicked.connect(self.table1.clearContents)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
        self.tabMenu.setTabText(self.tabMenu.indexOf(self.tab), _translate("Dialog", "设备1"))
        self.tabMenu.setTabText(self.tabMenu.indexOf(self.tab_2), _translate("Dialog", "设备2"))
        self.clearButtom.setText(_translate("Dialog", "clear"))
        self.startButtom.setText(_translate("Dialog", "connect"))
        self.processLabel.setText(_translate("Dialog", "progress"))
        self.titleLable.setText(_translate("Dialog", "智慧工地人员安全小助手—小湖"))
        item = self.table1.verticalHeaderItem(0)
        item.setText(_translate("Dialog", "检测人数"))
        item = self.table1.verticalHeaderItem(1)
        item.setText(_translate("Dialog", "反光衣"))
        item = self.table1.verticalHeaderItem(2)
        item.setText(_translate("Dialog", "安全帽"))
        item = self.table1.horizontalHeaderItem(0)
        item.setText(_translate("Dialog", "系数"))
        item = self.table2.verticalHeaderItem(0)
        item.setText(_translate("Dialog", "跌倒检测"))
        item = self.table2.verticalHeaderItem(1)
        item.setText(_translate("Dialog", "烟雾检测"))
        item = self.table2.horizontalHeaderItem(0)
        item.setText(_translate("Dialog", "系数"))
        self.label.setText(_translate("Dialog", "安全检测"))
        self.label_2.setText(_translate("Dialog", "事故检测"))
        self.label_3.setText(_translate("Dialog", "准确率"))
예제 #29
0
class videoPlayer(QWidget):  # 视频播放类
    def __init__(self, parent=None):  # 构造函数
        super(videoPlayer, self).__init__(parent=parent)  # 类的继承
        self.mainwindow = parent

        self.length = 0  # 视频总时长
        self.position = 0  # 视频当前时长
        self.count = 0
        self.player_status = -1

        # 设置窗口
        self.setGeometry(300, 50, 800, 600)  #大小,与桌面放置位置
        # self.setWindowIcon(QIcon(':/images/video_player_icon.png'))  # 程序图标
        # self.setWindowTitle(titleName)  # 窗口名称
        # self.setWindowFlags(Qt.WindowCloseButtonHint | Qt.WindowMinimizeButtonHint)

        # 设置窗口背景
        self.palette = QPalette()
        self.palette.setColor(QPalette.Background, Qt.black)
        self.setPalette(self.palette)

        self.now_position = QLabel("/  00:00")  # 目前时间进度
        self.all_duration = QLabel('00:00')  # 总的时间进度
        self.all_duration.setStyleSheet('''QLabel{color:#000000}''')
        self.now_position.setStyleSheet('''QLabel{color:#000000}''')

        #视频插件
        self.video_widget = QVideoWidget(self)
        self.video_widget.setGeometry(QRect(0, 0, 1200, 700))  #大小,与桌面放置位置
        #self.video_widget.resize(1200, 700)  # 设置插件宽度与高度
        #self.video_widget.move(0, 30)   # 设置插件放置位置
        self.video_palette = QPalette()
        self.video_palette.setColor(QPalette.Background, Qt.black)  # 设置播放器背景
        self.video_widget.setPalette(self.video_palette)
        video_widget_color = "background-color:#000000"
        self.video_widget.setStyleSheet(video_widget_color)

        #布局容器
        self.verticalLayout = QVBoxLayout()
        self.verticalLayout.setSpacing(0)
        #self.verticalLayout.setContentsMargins(0, 5, 0, 10)
        self.layout = QHBoxLayout()
        self.layout.setSpacing(15)  # 各个插件的间距

        # 设置播放器
        self.player = QMediaPlayer(self)
        self.player.setVideoOutput(self.video_widget)
        #设置播放按钮事件
        self.player.durationChanged.connect(self.get_duration_func)
        # self.player.positionChanged.connect(self.progress)  # 媒体播放时发出信号
        self.player.mediaStatusChanged.connect(self.playerStatusChanged)
        self.player.error.connect(self.player_error)

        # 播放按钮
        self.play_btn = QPushButton(self)
        self.play_btn.setIcon(QIcon(':/images/play_btn_icon.png'))  # 设置按钮图标,下同
        self.play_btn.setIconSize(QSize(35, 35))
        self.play_btn.setStyleSheet(
            '''QPushButton{border:none;}QPushButton:hover{border:none;border-radius:35px;}'''
        )
        self.play_btn.setCursor(QCursor(Qt.PointingHandCursor))
        self.play_btn.setToolTip("播放")
        self.play_btn.setFlat(True)
        #self.play_btn.hide()
        #isHidden()      #判定控件是否隐藏

        #isVisible()     判定控件是否显示
        self.play_btn.clicked.connect(self.start_button)

        #音量条
        self.volume_slider = QSlider(Qt.Horizontal)  # 声音设置
        self.volume_slider.setMinimum(0)  # 音量0到100
        self.volume_slider.setMaximum(100)

        self.volume_slider.valueChanged.connect(self.volumes_change)

        self.volume_slider.setStyleSheet('''QSlider{}
QSlider::sub-page:horizontal:disabled{background: #00009C;  border-color: #999;  }
QSlider::add-page:horizontal:disabled{background: #eee;  border-color: #999; }
QSlider::handle:horizontal:disabled{background: #eee;  border: 1px solid #aaa;  border-radius: 4px;  }
QSlider::add-page:horizontal{background: #575757;  border: 0px solid #777;  height: 10px;border-radius: 2px; }
QSlider::handle:horizontal:hover{background:qradialgradient(spread:pad, cx:0.5, cy:0.5, radius:0.5, fx:0.5, fy:0.5, stop:0.6 #2A8BDA,   stop:0.778409 rgba(255, 255, 255, 255));  width: 11px;  margin-top: -3px;  margin-bottom: -3px;  border-radius: 5px; }
QSlider::sub-page:horizontal{background: qlineargradient(x1:0, y1:0, x2:0, y2:1,   stop:0 #B1B1B1, stop:1 #c4c4c4);  background: qlineargradient(x1: 0, y1: 0.2, x2: 1, y2: 1,stop: 0 #5DCCFF, stop: 1 #1874CD);  border: 1px solid #4A708B;  height: 10px;  border-radius: 2px;  }
QSlider::groove:horizontal{border: 1px solid #4A708B;  background: #C0C0C0;  height: 5px;  border-radius: 1px;  padding-left:-1px;  padding-right:-1px;}
QSlider::handle:horizontal{background: qradialgradient(spread:pad, cx:0.5, cy:0.5, radius:0.5, fx:0.5, fy:0.5,   stop:0.6 #45ADED, stop:0.778409 rgba(255, 255, 255, 255));  width: 11px;  margin-top: -3px;  margin-bottom: -3px;  border-radius: 5px; }'''
                                         )

        #视频播放进度条
        self.video_slider = QSlider(Qt.Horizontal, self)  # 视频进度拖拖动
        self.video_slider.setMinimum(0)  # 视频进度0到100%
        #self.video_slider.setMaximum(100)
        self.video_slider.setSingleStep(1)
        self.video_slider.setGeometry(QRect(0, 0, 200, 10))
        self.video_slider.sliderReleased.connect(self.video_silder_released)
        self.video_slider.sliderPressed.connect(self.video_silder_pressed)

        self.video_slider.setStyleSheet('''QSlider{}
QSlider::sub-page:horizontal:disabled{background: #00009C;  border-color: #999;  }
QSlider::add-page:horizontal:disabled{background: #eee;  border-color: #999; }
QSlider::handle:horizontal:disabled{background: #eee;  border: 1px solid #aaa;  border-radius: 4px;  }
QSlider::add-page:horizontal{background: #575757;  border: 0px solid #777;  height: 10px;border-radius: 2px; }
QSlider::handle:horizontal:hover{background:qradialgradient(spread:pad, cx:0.5, cy:0.5, radius:0.5, fx:0.5, fy:0.5, stop:0.6 #2A8BDA,   stop:0.778409 rgba(255, 255, 255, 255));  width: 11px;  margin-top: -3px;  margin-bottom: -3px;  border-radius: 5px; }
QSlider::sub-page:horizontal{background: qlineargradient(x1:0, y1:0, x2:0, y2:1,   stop:0 #B1B1B1, stop:1 #c4c4c4);  background: qlineargradient(x1: 0, y1: 0.2, x2: 1, y2: 1,stop: 0 #5DCCFF, stop: 1 #1874CD);  border: 1px solid #4A708B;  height: 10px;  border-radius: 2px;  }
QSlider::groove:horizontal{border: 1px solid #4A708B;  background: #C0C0C0;  height: 5px;  border-radius: 1px;  padding-left:-1px;  padding-right:-1px;}
QSlider::handle:horizontal{background: qradialgradient(spread:pad, cx:0.5, cy:0.5, radius:0.5, fx:0.5, fy:0.5,   stop:0.6 #45ADED, stop:0.778409 rgba(255, 255, 255, 255));  width: 11px;  margin-top: -3px;  margin-bottom: -3px;  border-radius: 5px; }'''
                                        )

        #静音按钮
        self.mute_button = QPushButton('')
        self.mute_button.clicked.connect(self.mute)
        self.mute_button.setIconSize(QSize(30, 30))
        self.mute_button.setStyleSheet(
            '''QPushButton{border:none;}QPushButton:hover{border:none;}''')
        self.mute_button.setCursor(QCursor(Qt.PointingHandCursor))
        self.mute_button.setToolTip("播放")
        self.mute_button.setFlat(True)
        self.mute_button.setIcon(QIcon(':/images/sound_btn_icon.png'))

        #暂停按钮
        self.pause_btn = QPushButton('')
        self.pause_btn.setIcon(QIcon(':/images/stop_btn_icon.png'))
        self.pause_btn.clicked.connect(self.stop_button)
        self.pause_btn.setIconSize(QSize(35, 35))
        self.pause_btn.setStyleSheet(
            '''QPushButton{border:none;}QPushButton:hover{border:none;}''')
        self.pause_btn.setCursor(QCursor(Qt.PointingHandCursor))
        self.pause_btn.setToolTip("播放")
        self.pause_btn.setFlat(True)
        self.pause_btn.hide()

        #音量值和音量显示标签
        self.volume_value = QLabel()
        self.volume_value.setText(' ' * 5)
        self.volume_value.setStyleSheet('''QLabel{color:#000000;}''')

        self.volume_t = QLabel()

        self.volume_t.setStyleSheet('''QLabel{color:#000000;}''')

        #视频文件打开按钮
        self.open_btn = QPushButton('Open')
        self.open_btn.clicked.connect(self.getfile)

        #全屏按钮
        self.screen_btn = QPushButton('')
        self.screen_btn.setIcon(
            QIcon(QPixmap(':/images/fullsrceen_btn_icon.png')))
        self.screen_btn.setIconSize(QSize(38, 38))
        self.screen_btn.setStyleSheet(
            '''QPushButton{border:none;}QPushButton:hover{border:1px solid #F3F3F5;border-radius:35px;}'''
        )
        self.screen_btn.setCursor(QCursor(Qt.PointingHandCursor))
        self.screen_btn.setToolTip("播放")
        self.screen_btn.setFlat(True)
        self.screen_btn.clicked.connect(self.fullscreen)

        #添加按钮组件
        self.verticalLayout.addStretch()
        self.layout.addWidget(self.play_btn, 0,
                              Qt.AlignCenter | Qt.AlignVCenter)
        self.layout.addWidget(self.pause_btn, 0, Qt.AlignCenter
                              | Qt.AlignVCenter)  # 插件,与前一个模块的距离,位置

        self.layout.addWidget(self.all_duration, 0,
                              Qt.AlignCenter | Qt.AlignVCenter)
        self.layout.addWidget(self.now_position, 0,
                              Qt.AlignCenter | Qt.AlignVCenter)
        self.layout.addWidget(self.video_slider, 15,
                              Qt.AlignVCenter | Qt.AlignVCenter)
        self.layout.addWidget(self.mute_button, 0,
                              Qt.AlignCenter | Qt.AlignVCenter)
        self.layout.addWidget(self.volume_slider, 0,
                              Qt.AlignCenter | Qt.AlignVCenter)

        self.layout.addWidget(self.volume_value, 0,
                              Qt.AlignCenter | Qt.AlignVCenter)

        #self.layout.addWidget(self.screen_btn)
        #self.layout.addWidget(self.open_btn)
        self.verticalLayout.addLayout(self.layout)

        #self.verticalLayout.addLayout(self.layout)
        self.setLayout(self.verticalLayout)

    def player_error(self, errorCode):
        print('error = ' + str(errorCode))
        try:
            if errorCode == 0:
                pass
            elif errorCode == 1:
                self.showAlertWindow('errorCode:1 \n\n无效视频源。')
            elif errorCode == 2:
                self.showAlertWindow('errorCode:2 \n\n不支持的媒体格式')
            elif errorCode == 3:
                self.showAlertWindow('errorCode:3 \n\n网络错误')
            elif errorCode == 4:
                self.showAlertWindow('errorCode:4 \n\n没有权限播放该视频')
            elif errorCode == 5:
                self.showAlertWindow('errorCode:5 \n\n视频服务不存在,无法继续播放。')
            else:
                self.showAlertWindow('未知错误')
        except:
            self.showAlertWindow('视频加载异常')

    def video_silder_pressed(self):
        if self.player.state != 0:
            self.player.pause()

    def playerStatusChanged(self, status):
        self.player_status = status
        if status == 7:
            self.play_btn.show()
            self.pause_btn.hide()

        #print('playerStatusChanged =' + str(status) + '...............')

    def resizeEvent(self, e):
        #print(e.size().width(), e.size().height())
        newSize = e.size()
        self.video_widget.setGeometry(0, 0, newSize.width(),
                                      newSize.height() - 50)
        #self.video_widget.setGeometry(0, 0, 0, 0)

    def closeEvent(self, e):
        self.player.stop()

    def get_duration_func(self, d):
        try:
            end_number = int(d / 1000 / 10) + 1
            #print('end_number = ' + str(end_number))
            sum = 0
            for n in range(1, end_number):
                sum = sum + n

            vv = int((100 / (d / 1000)) * (d / 1000))
            self.video_slider.setMaximum(d)
            #self.video_slider.setMaximum(vv + sum)
            #print(100 + sum)

            all_second = int(d / 1000 % 60)  # 视频播放时间
            all_minute = int(d / 1000 / 60)

            if all_minute < 10:

                if all_second < 10:

                    self.all_duration.setText('0' + str(all_minute) + ':0' +
                                              str(all_second))
                else:

                    self.all_duration.setText('0' + str(all_minute) + ':' +
                                              str(all_second))
            else:

                if all_second < 10:

                    self.all_duration.setText(
                        str(all_minute) + ':0' + str(all_second))
                else:

                    self.all_duration.setText(
                        str(all_minute) + ':' + str(all_second))
        except Exception as e:
            pass

    def mouseDoubleClickEvent(self, e):
        try:

            #print('mouseDoubleClickEvent................... = ' + str(self.player.state()))
            if self.player.state() == 2:
                #视频暂停
                self.player.play()
                self.play_btn.hide()
                self.pause_btn.show()

            elif self.player.state() == 1:
                # 正在播放
                self.player.pause()
                self.play_btn.show()
                self.pause_btn.hide()
            else:
                #视频停止
                self.play_btn.hide()
                self.pause_btn.show()
                self.player.setPosition(0)
                self.video_slider.setValue(0)
                self.player.play()
        except Exception as e:
            pass

    def start_button(self):  # 视频播放按钮
        try:

            self.play_btn.hide()
            self.pause_btn.show()

            if self.player_status == 7:
                self.video_slider.setValue(0)
                self.player.setPosition(0)

            self.player.play()
        except Exception as e:
            pass

    def stop_button(self):  # 视频暂停按钮
        self.play_btn.show()
        self.pause_btn.hide()
        self.player.pause()

    def getfile(self, filepath):  # 打开视频文件
        try:

            #print(str(filepath))
            url = QUrl.fromLocalFile(filepath)
            if url.isValid():
                self.player.setMedia(QMediaContent(url))  # 返回该文件地址,并把地址放入播放内容中
                self.player.setVolume(50)  # 设置默认打开音量即为音量条大小
                self.volume_value.setText(str(50))
                self.volume_slider.setValue(50)
            else:
                self.showAlertWindow('视频地址无效')

        except Exception as e:
            self.showAlertWindow()

    def clearVolumeValue():
        self.volume_value.setText(' ' * 5)

    def volumes_change(self):  # 拖动进度条设置声音
        try:
            size = self.volume_slider.value()
            if size:
                # 但进度条的值不为0时,此时音量不为静音,音量值即为进度条值
                self.player.setMuted(False)
                self.player.setVolume(size)
                volume_value = str(size) + ' ' * 4
                self.volume_value.setText(volume_value)
                #print(size)
                self.mute_button.setIcon(QIcon(':/images/sound_btn_icon.png'))
            else:
                self.player.setMuted(True)
                self.mute_button.setIcon(QIcon(':/images/mute_btn_icon.png'))
                self.player.setVolume(0)
                volume_value = '0' + ' ' * 4
                self.volume_value.setText(volume_value)

            if len(str(size)) == 1:
                volume_value = str(size) + ' ' * 4
            elif len(str(size)) == 2:
                volume_value = str(size) + ' ' * 3
            else:
                volume_value = str(size) + ' ' * 2

            self.volume_value.setText(volume_value)
        except Exception as e:
            pass

    def mute(self):
        try:
            if self.player.isMuted():
                self.mute_button.setIcon(QIcon(':/images/sound_btn_icon.png'))
                self.player.setMuted(False)
                self.volume_slider.setValue(50)
                volume_value = '50' + ' ' * 4
                self.volume_value.setText(volume_value)
            else:
                self.mute_button.setIcon(QIcon(':/images/mute_btn_icon.png'))
                self.player.setMuted(True)  # 若不为静音,则设置为静音,音量置为0
                self.volume_slider.setValue(0)
                volume_value = '0' + ' ' * 4
                self.volume_value.setText(volume_value)
        except Exception as e:
            pass

    def progress(self):  # 视频进度条自动释放与播放时间

        try:

            self.length = self.player.duration() + 1
            self.position = self.player.position()
            #print(str(self.length) + ':' + str(self.position))
            self.count += 1

            video_silder_maximum = self.video_slider.maximum()

            #video_silder_value = int(((video_silder_maximum / (self.length / 1000)) * (self.position / 1000)))

            #self.video_slider.setValue(video_silder_value + self.count)

            self.video_slider.setValue(self.position)

            #print('video_slider_value = ' + str(video_silder_value + self.count))

            now_second = int(self.position / 1000 % 60)
            now_minute = int(self.position / 1000 / 60)
            self.mainwindow.resultlist2.addItem("{0:02d} : {1:02d}".format(
                now_minute, now_second))
            #print(str(now_minute) + ':' + str(now_second))
            if now_minute < 10:
                if now_second < 10:

                    self.now_position.setText('/  0' + str(now_minute) + ':0' +
                                              str(now_second))
                else:

                    self.now_position.setText('/  0' + str(now_minute) + ':' +
                                              str(now_second))
            else:

                #print('now_minute < 10' + str(now_minute) + ':' + str(now_second))

                if now_second < 10:
                    #print('now_second < 10' + str(now_minute) + ':' + str(now_second))
                    #self.now_position.setText(str(now_minute) + ':0' + str(now_second))
                    self.now_position.setText('/  ' + str(now_minute) + ':0' +
                                              str(now_second))
                else:
                    #print('now_second > 10' + str(now_minute) + ':' + str(now_second))
                    self.now_position.setText('/  ' + str(now_minute) + ':' +
                                              str(now_second))
        except Exception as e:
            pass

    def video_silder_released(self):  # 释放滑条时,改变视频播放进度
        try:

            #print('video_silder_released......')
            if self.player.state() != 0:
                self.player.setPosition(self.video_slider.value())
                self.player.play()
            else:  #如果视频是停止状态,则拖动进度条无效
                self.video_slider.setValue(0)
        except Exception as e:
            pass

    def fullscreen(self):
        self.showFullScreen()

    def keyPressEvent(self, event):  # 重新改写按键
        if event.key() == Qt.Key_Escape:
            self.winquit()

    def winquit(self):  # 退出窗口
        self.showNormal()

    def showAlertWindow(self, msg='视频加载出错!'):
        reply = QMessageBox.information(self, "消息框标题", msg, QMessageBox.Yes)

    def setWindowTitleName(self, titleName):
        self.setWindowTitle(titleName)  # 窗口名称
예제 #30
0
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1420, 565)
        self.centralWidget = QtWidgets.QWidget(MainWindow)
        self.centralWidget.setObjectName("centralWidget")
        self.horizontalLayoutWidget = QtWidgets.QWidget(self.centralWidget)
        self.horizontalLayoutWidget.setGeometry(QtCore.QRect(70, 520, 681, 41))
        self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget")
        self.horizontalLayout = QtWidgets.QHBoxLayout(
            self.horizontalLayoutWidget)
        self.horizontalLayout.setContentsMargins(11, 11, 11, 11)
        self.horizontalLayout.setSpacing(6)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.btnBrowse = QtWidgets.QPushButton(self.horizontalLayoutWidget)
        self.btnBrowse.setObjectName("btnBrowse")
        self.horizontalLayout.addWidget(self.btnBrowse)
        self.createGraph = QtWidgets.QPushButton(self.horizontalLayoutWidget)
        self.createGraph.setEnabled(True)
        self.createGraph.setObjectName("createGraph")
        self.horizontalLayout.addWidget(self.createGraph)
        self.videoWidget = QVideoWidget(self.centralWidget)
        self.videoWidget.setGeometry(QtCore.QRect(9, 9, 800, 480))
        self.videoWidget.setObjectName("videoWidget")
        self.horizontalLayoutWidget_2 = QtWidgets.QWidget(self.videoWidget)
        self.horizontalLayoutWidget_2.setGeometry(QtCore.QRect(0, 0, 801, 481))
        self.horizontalLayoutWidget_2.setObjectName("horizontalLayoutWidget_2")
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout(
            self.horizontalLayoutWidget_2)
        self.horizontalLayout_3.setContentsMargins(11, 11, 11, 11)
        self.horizontalLayout_3.setSpacing(6)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.playBtn = QtWidgets.QPushButton(self.centralWidget)
        self.playBtn.setEnabled(True)
        self.playBtn.setGeometry(QtCore.QRect(70, 490, 61, 31))
        self.playBtn.setObjectName("playBtn")
        self.verticalLayoutWidget = QtWidgets.QWidget(self.centralWidget)
        self.verticalLayoutWidget.setGeometry(QtCore.QRect(130, 490, 561, 31))
        self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
        self.scrolLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
        self.scrolLayout.setContentsMargins(11, 11, 11, 11)
        self.scrolLayout.setSpacing(6)
        self.scrolLayout.setObjectName("scrolLayout")
        self.fullScreen = QtWidgets.QPushButton(self.centralWidget)
        self.fullScreen.setGeometry(QtCore.QRect(690, 490, 61, 31))
        self.fullScreen.setObjectName("fullScreen")
        self.plot_widget = QtWidgets.QWidget(self.centralWidget)
        self.plot_widget.setGeometry(QtCore.QRect(819, 9, 591, 481))
        self.plot_widget.setObjectName("plot_widget")
        self.label = QtWidgets.QLabel(self.centralWidget)
        self.label.setGeometry(QtCore.QRect(950, 510, 41, 21))
        self.label.setObjectName("label")
        self.lineEdit = QtWidgets.QLineEdit(self.centralWidget)
        self.lineEdit.setGeometry(QtCore.QRect(1000, 510, 351, 21))
        self.lineEdit.setObjectName("lineEdit")
        self.OK = QtWidgets.QPushButton(self.centralWidget)
        self.OK.setGeometry(QtCore.QRect(1360, 500, 51, 41))
        self.OK.setObjectName("OK")
        MainWindow.setCentralWidget(self.centralWidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.btnBrowse.setText(_translate("MainWindow", "choose video"))
        self.createGraph.setText(_translate("MainWindow", "create graph"))
        self.playBtn.setText(_translate("MainWindow", "Ply"))
        self.fullScreen.setText(_translate("MainWindow", "full"))
        self.label.setText(_translate("MainWindow", "Name:"))
        self.OK.setText(_translate("MainWindow", "Ok"))