Beispiel #1
0
    def __init__(self, parent=None):
        super(Viewfinder, self).__init__(parent=parent)

        self.camera = None
        self.recordDir = os.path.expanduser('~')

        self.scene = QtWidgets.QGraphicsScene()
        self.scene.setBackgroundBrush(QtCore.Qt.black)
        self.setScene(self.scene)

        # Camera preview
        self.preview = QtMultimediaWidgets.QGraphicsVideoItem()
        self.scene.addItem(self.preview)

        # Record and stop button. The record button is initially added to the scene.
        self.stopItem = ButtonItem(
            pkgutil.get_data('webrec', 'resources/stop_icon.png'))
        self.stopItem.signalSource.clicked.connect(self.stopClicked)
        self.recordItem = ButtonItem(
            pkgutil.get_data('webrec', 'resources/record_icon.png'))
        self.recordItem.signalSource.clicked.connect(self.recordClicked)
        self.scene.addItem(self.recordItem)

        self.resize(self.width(), self.height())
Beispiel #2
0
    def setupUi(self, MainWindow):
        MainWindow.resize(700, 475)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout(self.centralwidget)
        self.verticalLayout_2 = QtWidgets.QVBoxLayout()
        self.verticalLayout_3 = QtWidgets.QVBoxLayout()
        self.verticalLayout_3.setSpacing(12)
        self.verticalLayout = QtWidgets.QVBoxLayout()

        self.videoPathLabel = QtWidgets.QLabel(self.centralwidget)
        self.videoPath = QtWidgets.QLabel(self.centralwidget)
        self.videoPath.setText("None")

        self.verticalLayout.addWidget(self.videoPathLabel)
        self.verticalLayout.addWidget(self.videoPath)

        self.fpsLabel = QtWidgets.QLabel(self.centralwidget)
        self.fps = QtWidgets.QLabel(self.centralwidget)
        self.sizeLabel = QtWidgets.QLabel(self.centralwidget)
        self.size = QtWidgets.QLabel(self.centralwidget)

        self.horizontalLayout_2.addWidget(self.fpsLabel)
        self.horizontalLayout_2.addWidget(self.fps)
        self.horizontalLayout_2.addWidget(self.sizeLabel)
        self.horizontalLayout_2.addWidget(self.size)

        self.durationLabel = QtWidgets.QLabel(self.centralwidget)
        self.duration = QtWidgets.QLabel(self.centralwidget)
        self.clipLabel = QtWidgets.QLabel(self.centralwidget)
        self.clip = QtWidgets.QLabel(self.centralwidget)

        self.horizontalLayout_3.addWidget(self.durationLabel)
        self.horizontalLayout_3.addWidget(self.duration)
        self.horizontalLayout_3.addWidget(self.clipLabel)
        self.horizontalLayout_3.addWidget(self.clip)

        self.cutRateLabel = QtWidgets.QLabel(self.centralwidget)
        self.cutRate = QtWidgets.QLineEdit(self.centralwidget)
        regex = QtCore.QRegExp('^([1-9]|10)$')
        rangeNum = QtGui.QRegExpValidator(regex, self.cutRate)
        self.cutRate.setValidator(rangeNum)
        self.cutRate.setText('1')

        self.horizontalLayout_4.addWidget(self.cutRateLabel)
        self.horizontalLayout_4.addWidget(self.cutRate)

        self.ctpn = QtWidgets.QPushButton(self.centralwidget)
        self.ctpn.setEnabled(False)
        self.save = QtWidgets.QPushButton(self.centralwidget)
        self.save.setEnabled(False)
        self.readme = QtWidgets.QLabel(self.centralwidget)
        pix = QtGui.QPixmap('./Gui/Asset/Help.png')
        self.readme.setPixmap(pix)

        self.verticalLayout_3.addLayout(self.verticalLayout)
        self.verticalLayout_3.addLayout(self.horizontalLayout_2)
        self.verticalLayout_3.addLayout(self.horizontalLayout_3)
        self.verticalLayout_3.addLayout(self.horizontalLayout_4)
        self.verticalLayout_3.addWidget(self.ctpn)
        self.verticalLayout_3.addWidget(self.save)
        self.verticalLayout_3.addWidget(self.readme, 2)

        #video
        self.video = QMediaPlayer(None, QMediaPlayer.VideoSurface)
        self.videoItem = QtMultimediaWidgets.QGraphicsVideoItem()
        self.scene = QtWidgets.QGraphicsScene()
        self.gv = GraphicsView(self.scene)
        self.gv.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
        self.gv.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
        self.gv.setStyleSheet("background-color: black")
        self.scene.addItem(self.videoItem)
        self.video.setVideoOutput(self.videoItem)
        #video rect cover
        self.rectItem = GraphicsRectItem(self.videoItem)
        self.rectItem.setClip(self.clip)
        self.rectItem.setVisible(False)

        self.horizontalSlider = slider(self.centralwidget)
        self.horizontalSlider.setRange(0, 0)
        self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal)
        self.horizontalSlider.setStyleSheet(
            Utils.LoadQss('Gui/Asset/style.qss'))

        self.timeline = QtWidgets.QLabel(self.centralwidget)
        self.play = QtWidgets.QPushButton(self.centralwidget)
        self.play.setIcon(self.style().standardIcon(
            QtWidgets.QStyle.SP_MediaPlay))
        self.play.setEnabled(False)

        self.horizontalLayout.addWidget(self.play)
        self.horizontalLayout.addWidget(self.horizontalSlider)
        self.horizontalLayout.addWidget(self.timeline)

        self.verticalLayout_2.addWidget(self.gv)
        self.verticalLayout_2.addLayout(self.horizontalLayout)

        self.horizontalLayout_5.addLayout(self.verticalLayout_3, 1)
        self.horizontalLayout_5.addLayout(self.verticalLayout_2, 8)

        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.toolBar = QtWidgets.QToolBar(MainWindow)

        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setEnabled(True)
        self.menuFile = QtWidgets.QMenu(self.menubar)

        self.actionLoadVideo = QtWidgets.QAction(MainWindow)

        self.menubar.addAction(self.menuFile.menuAction())
        self.menuFile.addAction(self.actionLoadVideo)

        MainWindow.setCentralWidget(self.centralwidget)
        MainWindow.setMenuBar(self.menubar)
        MainWindow.setStatusBar(self.statusbar)
        MainWindow.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)

        self.retranslateUi(MainWindow)
        self.menuFile.triggered.connect(self.OpenFile)
        self.play.clicked.connect(self.PlayVideo)
        self.video.positionChanged.connect(self.PositionChanged)
        self.video.durationChanged.connect(self.DurationChanged)
        self.horizontalSlider.sliderMoved.connect(self.MoveSliderPos)
        self.horizontalSlider.valueChanged.connect(self.ClickSliderPos)
        self.ctpn.clicked.connect(self.CtpnDetect)
        self.save.clicked.connect(self.SaveResult)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)