Пример #1
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"))
Пример #2
0
class IntroWindow(QMainWindow, Form):
    def __init__(self):
        Form.__init__(self)
        QMainWindow.__init__(self)
        self.setWindowIcon(QIcon("logo.png"))

        p = self.palette()
        p.setColor(QPalette.Window, Qt.gray)
        self.setPalette(p)

        self.setupUi(self)

        self.a = 1
        self.videowidget = QVideoWidget()
        self.vertical.addWidget(self.videowidget)
        self.videoplayer = QMediaPlayer(None, QMediaPlayer.VideoSurface)
        self.videoplayer.setVideoOutput(self.videowidget)
        self.sliderfilm.setRange(0, 0)
        self.volume.setRange(0, 100)
        self.videoplayer.setVolume(100)
        self.volume.setValue(100)

        self.play.setEnabled(False)
        self.increaseRate.setEnabled(False)
        self.decreaseRate.setEnabled(False)

        self.sliderfilm.installEventFilter(self)
        self.volume.installEventFilter(self)
        self.frames.installEventFilter(self)
        self.frame_2.installEventFilter(self)
        self.frames.installEventFilter(self)

        # putting Icons on buttons

        self.increaseRate.setIcon(self.style().standardIcon(
            QStyle.SP_MediaSeekForward))
        self.decreaseRate.setIcon(self.style().standardIcon(
            QStyle.SP_MediaSeekBackward))
        self.play.setIcon(self.style().standardIcon(QStyle.SP_MediaPlay))
        self.open.setIcon(self.style().standardIcon(QStyle.SP_DirHomeIcon))
        self.skipforward.setIcon(self.style().standardIcon(
            QStyle.SP_MediaSkipForward))
        self.skipback.setIcon(self.style().standardIcon(
            QStyle.SP_MediaSkipBackward))
        self.stop.setIcon(self.style().standardIcon(QStyle.SP_MediaStop))

        self.sliderfilm.sliderMoved.connect(self.setpos)
        self.videoplayer.positionChanged.connect(self.position)
        self.videoplayer.durationChanged.connect(self.changed)
        self.videoplayer.volumeChanged.connect(self.setvolpos)
        self.volume.sliderMoved.connect(self.setvolpos)
        self.actionOpen.triggered.connect(self.Loadvideo)
        self.actionSearch_By_Tag.triggered.connect(self.opensecond)
        self.actionFullscreen.triggered.connect(self.screen)
        self.skipforward.clicked.connect(self.skipforw)
        self.skipback.clicked.connect(self.skipbac)
        self.increaseRate.clicked.connect(self.incRate)
        self.decreaseRate.clicked.connect(self.decRate)
        self.play.clicked.connect(self.play_video)
        self.open.clicked.connect(lambda: self.Loadvideo(self.videoplayer))
        self.stop.clicked.connect(self.stopp)
        self.listView.hide()
        self.tolfilm = 0
        self.listviewstatus = 0
        self.listbtn.clicked.connect(lambda: self.list())
        self.listView.itemClicked.connect(self.listwidgetclicked)
        self.theme1.triggered.connect(lambda: self.theme01())
        self.theme2.triggered.connect(lambda: self.theme02())
        self.theme3.triggered.connect(lambda: self.theme03())
        self.theme4.triggered.connect(lambda: self.theme04())
        self.actionFarsi.triggered.connect(lambda: self.farsi())
        self.actionEnglish.triggered.connect(lambda: self.english())
        self.filename = ""
        self.x = 0
        self.videowidget3 = QVideoWidget()
        self.verticalLayout_8.addWidget(self.videowidget3)
        self.videoplayer3 = QMediaPlayer(None, QMediaPlayer.VideoSurface)
        self.videoplayer3.setVideoOutput(self.videowidget3)
        self.widget.hide()
        self.stop.setEnabled(False)
        self.m = 0
        self.dataL = []
        with open("config.txt") as f:
            self.config = f.read()
        if int(self.config) == 11:
            self.theme01()
            self.farsi()
        if int(self.config) == 12:
            self.theme01()
            self.english()
        elif int(self.config) == 21:
            self.farsi()
            self.theme02()
        elif int(self.config) == 22:
            self.english()
            self.theme02()
        elif int(self.config) == 31:
            self.farsi()
            self.theme03()
        elif int(self.config) == 32:
            self.english()
            self.theme03()
        elif int(self.config) == 41:
            self.farsi()
            self.theme04()
        elif int(self.config) == 42:
            self.english()
            self.theme04()

    def farsi(self):
        self.menuLanguage.setTitle("زبان")
        self.menuView.setTitle("نمایش")
        self.theme1.setText("تم ۱")
        self.theme2.setText("تم ۲")
        self.theme3.setText("تم ۳")
        self.theme4.setText("تم ۴")
        self.menuFile.setTitle("فایل")
        self.actionOpen.setText("باز کردن ویدیو")
        self.actionSearch_By_Tag.setText("پنل تگ ها")
        self.actionFullscreen.setText("تمام صفحه")
        self.actionEnglish.setText("انگلیسی")
        self.actionFarsi.setText("فارسی")
        self.decreaseRate.setStatusTip("کاهش سرعت")
        self.decreaseRate.setToolTip("کاهش سرعت")
        self.increaseRate.setStatusTip("افزایش سرعت")
        self.increaseRate.setToolTip("افزایش سرعت")
        self.open.setStatusTip("باز کردن ویدیو")
        self.open.setToolTip("باز کردن ویدیو")
        self.stop.setStatusTip("توقف")
        self.stop.setToolTip("توقف")
        self.skipback.setStatusTip("عقب رفتن")
        self.skipback.setToolTip("عقب رفتن")
        self.play.setStatusTip("شروع/ایست")
        self.play.setToolTip("شروع/ایست")
        self.skipforward.setStatusTip("جلو رفتن")
        self.skipforward.setToolTip("جلو رفتن")
        self.volume.setStatusTip("صدا")
        self.volume.setToolTip("صدا")
        self.listbtn.setStatusTip("دسترسی آسان")
        self.listbtn.setToolTip(
            "پنلی شامل تگ ها و پنجره ای برای پیش نمایش را نمایان/پنهان میکند که با کلیک کردن بر روی هر کدام ویدیو به آن لحظه میرود"
        )
        with open("config.txt") as f:
            self.config = f.read()
        if int(self.config) // 10 == 1:
            with open("config.txt", "w") as f2:
                f2.write("11")
        if int(self.config) // 10 == 2:
            with open("config.txt", "w") as f2:
                f2.write("21")
        if int(self.config) // 10 == 3:
            with open("config.txt", "w") as f2:
                f2.write("31")
        if int(self.config) // 10 == 4:
            with open("config.txt", "w") as f2:
                f2.write("41")

    def english(self):
        self.menuLanguage.setTitle("Language")
        self.menuView.setTitle("View")
        self.theme1.setText("Theme1")
        self.theme2.setText("Theme2")
        self.theme3.setText("Theme3")
        self.theme4.setText("Theme4")
        self.menuFile.setTitle("File")
        self.actionOpen.setText("Open Video")
        self.actionSearch_By_Tag.setText("Tags Panel")
        self.actionFullscreen.setText("Fullscreen")
        self.actionEnglish.setText("English")
        self.actionFarsi.setText("Persian")
        self.decreaseRate.setStatusTip("Decrease Play Speed")
        self.decreaseRate.setToolTip("Decrease Play Speed")
        self.increaseRate.setStatusTip("Increase Play Speed")
        self.increaseRate.setToolTip("Increase Play Speed")
        self.open.setStatusTip("Open Video")
        self.open.setToolTip("Open Video")
        self.stop.setStatusTip("Stop")
        self.stop.setToolTip("Stop")
        self.skipback.setStatusTip("Previous")
        self.skipback.setToolTip("Previous")
        self.play.setStatusTip("Play/Pause")
        self.play.setToolTip("Play/Pause")
        self.skipforward.setStatusTip("Next")
        self.skipforward.setToolTip("Next")
        self.volume.setStatusTip("Volume")
        self.volume.setToolTip("Volume")
        self.listbtn.setStatusTip("Easy Access")
        self.listbtn.setToolTip(
            "Shows/Hides a panel for the tags that can be clicked on to take the video to its moment and also a preview window"
        )
        with open("config.txt") as f:
            self.config = f.read()
            if self.config == "":
                with open("config.txt", w) as f2:
                    f2.write("11")
                    self.config = "11"
        if int(self.config) // 10 == 1:
            with open("config.txt", "w") as f2:
                f2.write("12")
        if int(self.config) // 10 == 2:
            with open("config.txt", "w") as f2:
                f2.write("22")
        if int(self.config) // 10 == 3:
            with open("config.txt", "w") as f2:
                f2.write("32")
        if int(self.config) // 10 == 4:
            with open("config.txt", "w") as f2:
                f2.write("42")

    def moviess(self):
        x = self.filename.split("/")
        file_name = self.filename[:self.filename.find(x[len(x) - 1])]
        png = ""
        png2 = ""
        folders = os.listdir(file_name + r"/")
        for file in folders:
            if file.find(".mp4") > 0:
                png = png + ";" + file_name + file
                png2 = ";" + file_name + file + png2
        png = png + ";"
        self.png = png
        png2 = png2 + ";"
        self.png2 = png2

    def hoverleave(self):
        self.widget.hide()

    def gotovolume(self):
        x, _ = win32api.GetCursorPos()
        self.videoplayer.setVolume(
            int((x - self.mapToGlobal(self.volume.pos()).x()) /
                self.volume.width() * 100))
        self.volume.setValue(
            int((x - self.mapToGlobal(self.volume.pos()).x()) /
                self.volume.width() * 100))
        if self.m % 2 == 1:
            self.m += 1
            self.videoplayer.setMuted(False)

    def goto(self):
        x, _ = win32api.GetCursorPos()
        if self.filename != "":
            self.videoplayer.setPosition(
                (x - self.mapToGlobal(self.sliderfilm.pos()).x()) /
                self.sliderfilm.width() * self.dur * 1000)

    def onHovered(self):
        x, _ = win32api.GetCursorPos()
        if self.filename != "":
            if self.listviewstatus % 2 == 1:
                self.videoplayer3.setPosition(
                    (x - self.mapToGlobal(self.sliderfilm.pos()).x()) /
                    self.sliderfilm.width() * self.dur * 1000)
                self.widget.show()

    def eventFilter(self, obj, event):
        if obj == self.sliderfilm and event.type() == QtCore.QEvent.HoverMove:
            self.onHovered()
        elif (obj == self.frames
              or obj == self.frame_2) and event.type() == QtCore.QEvent.Enter:
            self.hoverleave()
        elif obj == self.sliderfilm and event.type(
        ) == QtCore.QEvent.MouseButtonPress:
            self.goto()
        elif obj == self.volume and event.type(
        ) == QtCore.QEvent.MouseButtonPress:
            self.gotovolume()
        elif obj == self.frames and event.type(
        ) == QtCore.QEvent.MouseButtonDblClick:
            if not self.isFullScreen():
                self.fulls()
            else:
                self.unfull()

        return super(QMainWindow, self).eventFilter(obj, event)

    def stopp(self):
        self.stop.setEnabled(False)
        self.videoplayer.stop()
        self.videoplayer.setPosition(0)
        self.play.setIcon(self.style().standardIcon(QStyle.SP_MediaPlay))

    def listwidgetclicked(self, item):
        t = item.text()
        t = t[t.find(">") + 1:]
        pt = datetime.strptime(t, "%H:%M:%S")
        total_seconds = pt.second + pt.minute * 60 + pt.hour * 3600
        if self.a == 0:
            self.videoplayer.setPosition(total_seconds * 1000)

    def list(self):
        if self.listviewstatus % 2 == 1:
            self.listView.hide()
            self.widget.hide()
            self.listbtn.setText("^")
            self.listviewstatus += 1
        else:
            self.listbtn.setText("v")
            self.listviewstatus += 1
            self.listView.show()

    def keyPressEvent(self, e):
        if e.key() == Qt.Key_Escape:
            if self.isFullScreen():
                self.unfull()
        elif e.key() == Qt.Key_6:
            if self.filename != "":
                self.videoplayer.setPosition(self.videoplayer.position() +
                                             5000)
        elif e.key() == Qt.Key_4:
            if self.filename != "":
                self.videoplayer.setPosition(self.videoplayer.position() -
                                             5000)
        elif e.key() == Qt.Key_Space:
            if self.filename != "":
                self.play_video()
        elif e.key() == Qt.Key_M:
            if self.m % 2 == 0:
                self.m += 1
                self.videoplayer.setMuted(True)
                self.volume.setEnabled(False)
                self.vvv = self.volume.value()
                self.volume.setValue(0)
            else:
                self.m += 1
                self.volume.setValue(self.vvv)
                self.volume.setEnabled(True)
                self.videoplayer.setMuted(False)

    def screen(self):
        if not self.isFullScreen():
            self.fulls()
        else:
            self.unfull()

    # forward media 5s
    def skipforw(self):
        a = self.png.find(self.filename)
        aa = self.png.find(";", a + 1)
        filename = self.png[aa + 1:self.png.find(";", aa + 1)]
        if filename != "":
            self.filename = filename
            self.videoplayer.setMedia(
                QMediaContent(QUrl.fromLocalFile(filename)))
            self.videoplayer3.setMedia(
                QMediaContent(QUrl.fromLocalFile(filename)))
            title = filename.split("/")
            title = title[len(title) - 1]
            self.setWindowTitle(f"Taz Player openning{title}")
            self.videoplayer3.play()
            self.videoplayer3.pause()
            self.widget.hide()
            self.videoplayer.setPosition(0)
            self.videoplayer.play()
            self.play.setIcon(self.style().standardIcon(QStyle.SP_MediaPause))
            clip = VideoFileClip(filename)
            self.dur = clip.duration

    def skipbac(self):
        a = self.png2.find(self.filename)
        aa = self.png2.find(";", a + 1)
        filename = self.png2[aa + 1:self.png2.find(";", aa + 1)]
        if filename != "":
            self.filename = filename
            self.videoplayer.setMedia(
                QMediaContent(QUrl.fromLocalFile(filename)))
            self.videoplayer3.setMedia(
                QMediaContent(QUrl.fromLocalFile(filename)))
            title = filename.split("/")
            title = title[len(title) - 1]
            self.setWindowTitle(f"Taz Player openning{title}")
            self.videoplayer3.play()
            self.videoplayer3.pause()
            self.widget.hide()
            self.videoplayer.setPosition(0)
            self.videoplayer.play()
            self.play.setIcon(self.style().standardIcon(QStyle.SP_MediaPause))
            clip = VideoFileClip(filename)
            self.dur = clip.duration

        # set increase rate

    def incRate(self):
        if self.videoplayer.playbackRate() == 0:
            x = self.videoplayer.playbackRate() + 1
        else:
            x = self.videoplayer.playbackRate()
        self.videoplayer.setPlaybackRate(x + 0.25)

    # set decrease rate
    def decRate(self):
        if self.videoplayer.playbackRate() == 0:
            x = self.videoplayer.playbackRate() + 1
        else:
            x = self.videoplayer.playbackRate()
        self.videoplayer.setPlaybackRate(x - 0.25)

    # Handling Tags
    def fillListView(self):
        for i in range(len(self.dataL)):
            self.listView.addItem(self.dataL[i][0] + "->" + self.dataL[i][1])

    def updateTagFile(self):
        fname = self.fileName.split(".")
        fname = fname[0]
        with open(fname + ".csv", mode="w") as f:
            writer = csv.writer(
                f,
                delimiter=",",
                quotechar='"',
                quoting=csv.QUOTE_MINIMAL,
                lineterminator="\n",
            )
            for line in self.dataL:
                writer.writerow(line)

    def giveTime(self):
        vidPos = self.videoplayer.position()
        h = int(vidPos / 1000 // 3600)
        m = int((vidPos / 1000 - h * 3600) // 60)
        s = int(((vidPos / 1000 - h * 3600 - m * 60) % 60) % 60) * 100 // 100
        if h < 10:
            h = "0" + str(h)
        if m < 10:
            m = "0" + str(m)
        if s < 10:
            s = "0" + str(s)
        return f"{h}:{m}:{s}"

    def insertTag(self, tableWidget):
        t = tableWidget
        tag = "New Tag"
        tagTime = self.giveTime()
        l = len(self.dataL)
        i = 0
        flag = False

        while tagTime > self.dataL[i][1]:
            i += 1
            if i >= l:
                break

        if i < l:
            if tagTime == self.dataL[i][1]:
                flag = True

        if not flag:
            self.dataL.insert(i, [tag, tagTime])

            t.insertRow(i)
            t.setItem(
                i,
                0,
                QTableWidgetItem(tag),
            )
            t.setItem(
                i,
                1,
                QTableWidgetItem(tagTime),
            )
            t.editItem(t.item(i, 0))

    def removeRow(self, tableWidget):
        if len(self.dataL) > 0:
            self.dataL.remove(self.dataL[tableWidget.currentRow()])
        tableWidget.removeRow(tableWidget.currentRow())

    def updateList(self, tableWidget):
        for i in range(tableWidget.rowCount()):
            self.dataL[i] = [
                tableWidget.item(i, 0).text(),
                tableWidget.item(i, 1).text(),
            ]

    def undoChanges(self):
        fname = self.fileName.split(".")
        fname = fname[0]
        with open(fname + ".csv", mode="r+") as f:
            data = csv.reader(f)
            self.dataL = list(data)

    def fillTable(self, tableWidget):
        tableWidget.setRowCount(len(self.dataL))
        for i in range(len(self.dataL)):
            tableWidget.setItem(i, 0, QTableWidgetItem(self.dataL[i][0]))
            tableWidget.setItem(i, 1, QTableWidgetItem(self.dataL[i][1]))

    def openTagFile(self):
        filename, _ = QFileDialog.getOpenFileName(
            self,
            "Open Tag File",
            filter="*.csv",
        )
        if filename != "":
            self.fileName = filename
            with open(filename, mode="r+") as f:
                data = csv.reader(f)
                self.dataL = list(data)

    def opensecond(self):
        login_page = LoginPage()
        login_page.setWindowFlags(QtCore.Qt.WindowCloseButtonHint)
        if int(self.config) % 10 == 1:
            login_page.Save.setText("برو به")
            login_page.apply.setText("اعمال تغییرات")
            login_page.buttonBox.button(QDialogButtonBox.Ok).setText("تایید")
            login_page.buttonBox.button(
                QDialogButtonBox.Cancel).setText("انصراف")
            login_page.AddRow.setText("افزودن تگ")
            login_page.DeleteRow.setText("حذف تگ")
            login_page.OpenTagButton.setText("باز کردن فایل تگ")
            login_page.tableWidget.setHorizontalHeaderLabels(["تگ", "زمان"])
        else:
            login_page.tableWidget.setHorizontalHeaderLabels(["Tag", "Time"])

        self.fillTable(login_page.tableWidget)

        login_page.buttonBox.accepted.connect(lambda: [
            self.updateList(login_page.tableWidget),
            self.listbtn.setFocus(),
            self.listView.clear(),
            self.fillListView(),
            self.updateTagFile(),
        ])

        login_page.buttonBox.rejected.connect(lambda: [
            self.listbtn.setFocus(),
            self.undoChanges(),
        ])

        login_page.apply.clicked.connect(lambda: [
            self.updateList(login_page.tableWidget),
            self.listView.clear(),
            self.fillListView(),
        ])

        login_page.AddRow.clicked.connect(lambda: [
            self.insertTag(login_page.tableWidget),
        ])

        login_page.Save.clicked.connect(lambda: [
            login_page.shows(self),
            self.updateList(login_page.tableWidget),
            self.listbtn.setFocus(),
            self.listView.clear(),
            self.fillListView(),
        ])

        login_page.DeleteRow.clicked.connect(lambda: [
            self.removeRow(login_page.tableWidget),
        ])

        login_page.OpenTagButton.clicked.connect(lambda: [
            self.openTagFile(),
            self.fillTable(login_page.tableWidget),
            self.listView.clear(),
            self.fillListView(),
        ])

        login_page.tableWidget.sortByColumn(1, Qt.AscendingOrder)
        # if int(self.config) % 10 == 2:
        #     login_page.tableWidget.setHorizontalHeaderLabels(["Tag", "Time"])
        # else:
        #     login_page.tableWidget.setHorizontalHeaderLabels(["تگ", "زمان"])

        login_page.exec_()

    # End of Handling Tags

    def fulls(self):
        self.decreaseRate.hide()
        self.increaseRate.hide()
        self.centralwidget.setContentsMargins(0, 0, 0, 0)
        self.play.hide()
        self.open.hide()
        self.skipforward.hide()
        self.skipback.hide()
        self.label.hide()
        self.label_2.hide()
        self.volume.hide()
        self.menubar.hide()
        self.sliderfilm.hide()
        self.statusBar.hide()
        self.showFullScreen()
        self.listbtn.hide()
        self.widget.hide()
        self.listView.hide()
        self.frame_2.hide()
        self.stop.hide()
        self.listviewstatus = 1

    def unfull(self):
        self.frame_2.show()
        self.stop.show()
        self.list()
        self.centralwidget.setContentsMargins(10, 10, 10, 10)
        self.decreaseRate.show()
        self.increaseRate.show()
        self.play.show()
        self.open.show()
        self.skipforward.show()
        self.skipback.show()
        self.label.show()
        self.label_2.show()
        self.volume.show()
        self.menubar.show()
        self.sliderfilm.show()
        self.statusBar.show()
        self.showNormal()
        self.listbtn.show()

    ##setting position of film
    def setpos(self, position):
        self.videoplayer.setPosition(position)

    def position(self, position):
        position2 = self.tolfilm * 1000 - position + 1000
        hour = int((position / 3600000) % 24)
        hour2 = int((position2 / 3600000) % 24)
        if hour < 10:
            hour = "0" + str(hour)
        if hour2 < 10:
            hour2 = "0" + str(hour2)
        minute = int((position / 60000) % 60)
        minute2 = int((position2 / 60000) % 60)
        if minute < 10:
            minute = "0" + str(minute)
        if minute2 < 10:
            minute2 = "0" + str(minute2)
        second = int((position / 1000) % 60)
        second2 = int((position2 / 1000) % 60)
        if second < 10:
            second = "0" + str(second)
        if second2 < 10:
            second2 = "0" + str(second2)
        self.label.setText(f"{hour}:{minute}:{second}")
        self.label_2.setText(f"{hour2}:{minute2}:{second2}")
        self.sliderfilm.setValue(position)
        if position2 < 1000:
            self.videoplayer.stop()
            self.sliderfilm.setValue(0)
            self.stop.setEnabled(False)
            self.play.setIcon(self.style().standardIcon(QStyle.SP_MediaPlay))

    def changed(self, duration):
        self.sliderfilm.setRange(0, duration)

    ##setting position of volume
    def setvolpos(self, position):
        self.videoplayer.setVolume(position)

    ##open button or open from menu bar
    def Loadvideo(self, videoplayer):
        self.a = 0
        filename, _ = QFileDialog.getOpenFileName(
            self,
            "Open Video",
            filter="*.mp4;*.mov;*.wmv;*.webm;*.wmv;*.m4v;*.m4a;*.flv",
        )
        if filename != "":
            self.videoplayer.setPosition(0)
            self.filename = filename
            if filename != "":
                self.fileName = filename.split(".")[0]
                fname = filename.split(".")
                fnmae = fname[0]
                if os.path.isfile(fnmae + ".csv"):
                    with open(fnmae + ".csv", mode="r+") as f:
                        data = csv.reader(f)
                        self.dataL = list(data)
                        self.listView.clear(),
                        self.fillListView()
                clip = VideoFileClip(filename)
                self.dur = clip.duration
                self.videoplayer.setMedia(
                    QMediaContent(QUrl.fromLocalFile(filename)))
                self.videoplayer3.setMedia(
                    QMediaContent(QUrl.fromLocalFile(filename)))
                self.moviess()
                clip = VideoFileClip(filename)
                self.tolfilm = int(clip.duration)
                title = filename.split("/")
                title = title[len(title) - 1]
                self.setWindowTitle(f"Taz Player openning : {title}")
                self.videoplayer3.play()
                self.videoplayer3.pause()
                self.widget.hide()
                self.stop.setEnabled(True)
                self.videoplayer.play()
                self.play.setEnabled(True)
                self.play.setIcon(self.style().standardIcon(
                    QStyle.SP_MediaPause))
                self.increaseRate.setEnabled(True)
                self.decreaseRate.setEnabled(True)

    ##play button
    def play_video(self):
        if self.videoplayer.state() == QMediaPlayer.PlayingState:
            self.play.setIcon(self.style().standardIcon(QStyle.SP_MediaPlay))
            self.videoplayer.pause()
        else:
            self.videoplayer.play()
            self.stop.setEnabled(True)
            self.play.setIcon(self.style().standardIcon(QStyle.SP_MediaPause))

    def theme01(self):
        self.videowidget.setStyleSheet("background-color: #404040")
        self.setStyleSheet("background-color: #A0A0A0")
        if self.theme1.text() == "Theme1":
            with open("config.txt", "w") as f:
                f.write("12")
        else:
            with open("config.txt", "w") as f:
                f.write("11")

    def theme02(self):
        self.videowidget.setStyleSheet("background-color: #330019")
        self.setStyleSheet("background-color: #990000")
        if self.theme1.text() == "Theme1":
            with open("config.txt", "w") as f:
                f.write("22")
        else:
            with open("config.txt", "w") as f:
                f.write("21")

    def theme03(self):
        self.videowidget.setStyleSheet("background-color: #35557F")
        self.setStyleSheet("background-color: #003366")
        if self.theme1.text() == "Theme1":
            with open("config.txt", "w") as f:
                f.write("32")
        else:
            with open("config.txt", "w") as f:
                f.write("31")

    def theme04(self):
        self.videowidget.setStyleSheet("background-color: #00FF00")
        self.setStyleSheet("background-color: #4C9900")
        if self.theme1.text() == "Theme1":
            with open("config.txt", "w") as f:
                f.write("42")
        else:
            with open("config.txt", "w") as f:
                f.write("41")
Пример #3
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"))
Пример #4
0
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", "准确率"))
Пример #5
0
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1709, 898)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            MainWindow.sizePolicy().hasHeightForWidth())
        MainWindow.setSizePolicy(sizePolicy)
        font = QtGui.QFont()
        font.setFamily("Microsoft YaHei UI Light")
        font.setPointSize(12)
        MainWindow.setFont(font)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralwidget)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.tabWidget = QtWidgets.QTabWidget(self.centralwidget)
        self.tabWidget.setEnabled(True)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.tabWidget.sizePolicy().hasHeightForWidth())
        self.tabWidget.setSizePolicy(sizePolicy)
        self.tabWidget.setAutoFillBackground(False)
        self.tabWidget.setStyleSheet("")
        self.tabWidget.setObjectName("tabWidget")
        self.gen_markers_tab = QtWidgets.QWidget()
        self.gen_markers_tab.setObjectName("gen_markers_tab")
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.gen_markers_tab)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.frame = QtWidgets.QFrame(self.gen_markers_tab)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.frame.sizePolicy().hasHeightForWidth())
        self.frame.setSizePolicy(sizePolicy)
        self.frame.setMinimumSize(QtCore.QSize(0, 0))
        self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame.setObjectName("frame")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.frame)
        self.verticalLayout.setObjectName("verticalLayout")
        self.groupBox = QtWidgets.QGroupBox(self.frame)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.groupBox.sizePolicy().hasHeightForWidth())
        self.groupBox.setSizePolicy(sizePolicy)
        self.groupBox.setMinimumSize(QtCore.QSize(300, 0))
        self.groupBox.setMaximumSize(QtCore.QSize(16777215, 16777215))
        self.groupBox.setAutoFillBackground(False)
        self.groupBox.setObjectName("groupBox")
        self.gridLayout_3 = QtWidgets.QGridLayout(self.groupBox)
        self.gridLayout_3.setObjectName("gridLayout_3")
        self.label = QtWidgets.QLabel(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.label.sizePolicy().hasHeightForWidth())
        self.label.setSizePolicy(sizePolicy)
        self.label.setMinimumSize(QtCore.QSize(120, 0))
        self.label.setObjectName("label")
        self.gridLayout_3.addWidget(self.label, 0, 0, 1, 1)
        self.gen_markers_arucoDict = QtWidgets.QComboBox(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.gen_markers_arucoDict.sizePolicy().hasHeightForWidth())
        self.gen_markers_arucoDict.setSizePolicy(sizePolicy)
        self.gen_markers_arucoDict.setObjectName("gen_markers_arucoDict")
        self.gridLayout_3.addWidget(self.gen_markers_arucoDict, 0, 1, 1, 1)
        self.gen_markers_dpi = QtWidgets.QSpinBox(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.gen_markers_dpi.sizePolicy().hasHeightForWidth())
        self.gen_markers_dpi.setSizePolicy(sizePolicy)
        self.gen_markers_dpi.setMaximum(64000)
        self.gen_markers_dpi.setSingleStep(1)
        self.gen_markers_dpi.setProperty("value", 300)
        self.gen_markers_dpi.setObjectName("gen_markers_dpi")
        self.gridLayout_3.addWidget(self.gen_markers_dpi, 3, 1, 1, 1)
        self.gen_markers_save_btn = QtWidgets.QPushButton(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.gen_markers_save_btn.sizePolicy().hasHeightForWidth())
        self.gen_markers_save_btn.setSizePolicy(sizePolicy)
        self.gen_markers_save_btn.setMinimumSize(QtCore.QSize(120, 0))
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("Resources/icons/diskette.svg"),
                       QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.gen_markers_save_btn.setIcon(icon)
        self.gen_markers_save_btn.setIconSize(QtCore.QSize(30, 30))
        self.gen_markers_save_btn.setObjectName("gen_markers_save_btn")
        self.gridLayout_3.addWidget(self.gen_markers_save_btn, 4, 0, 1, 1)
        self.gen_markers_size = QtWidgets.QDoubleSpinBox(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.gen_markers_size.sizePolicy().hasHeightForWidth())
        self.gen_markers_size.setSizePolicy(sizePolicy)
        self.gen_markers_size.setSingleStep(0.5)
        self.gen_markers_size.setProperty("value", 10.0)
        self.gen_markers_size.setObjectName("gen_markers_size")
        self.gridLayout_3.addWidget(self.gen_markers_size, 2, 1, 1, 1)
        self.label_4 = QtWidgets.QLabel(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.label_4.sizePolicy().hasHeightForWidth())
        self.label_4.setSizePolicy(sizePolicy)
        self.label_4.setMinimumSize(QtCore.QSize(120, 0))
        self.label_4.setObjectName("label_4")
        self.gridLayout_3.addWidget(self.label_4, 3, 0, 1, 1)
        self.gen_markers_num = QtWidgets.QSpinBox(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.gen_markers_num.sizePolicy().hasHeightForWidth())
        self.gen_markers_num.setSizePolicy(sizePolicy)
        self.gen_markers_num.setMaximum(50)
        self.gen_markers_num.setProperty("value", 5)
        self.gen_markers_num.setObjectName("gen_markers_num")
        self.gridLayout_3.addWidget(self.gen_markers_num, 1, 1, 1, 1)
        self.label_2 = QtWidgets.QLabel(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.label_2.sizePolicy().hasHeightForWidth())
        self.label_2.setSizePolicy(sizePolicy)
        self.label_2.setMinimumSize(QtCore.QSize(120, 0))
        self.label_2.setObjectName("label_2")
        self.gridLayout_3.addWidget(self.label_2, 1, 0, 1, 1)
        self.label_3 = QtWidgets.QLabel(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.label_3.sizePolicy().hasHeightForWidth())
        self.label_3.setSizePolicy(sizePolicy)
        self.label_3.setMinimumSize(QtCore.QSize(120, 0))
        self.label_3.setObjectName("label_3")
        self.gridLayout_3.addWidget(self.label_3, 2, 0, 1, 1)
        self.gen_markers_run_btn = QtWidgets.QPushButton(self.groupBox)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.gen_markers_run_btn.sizePolicy().hasHeightForWidth())
        self.gen_markers_run_btn.setSizePolicy(sizePolicy)
        self.gen_markers_run_btn.setLayoutDirection(QtCore.Qt.LeftToRight)
        icon1 = QtGui.QIcon()
        icon1.addPixmap(QtGui.QPixmap("Resources/icons/qr-code.svg"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.gen_markers_run_btn.setIcon(icon1)
        self.gen_markers_run_btn.setIconSize(QtCore.QSize(30, 30))
        self.gen_markers_run_btn.setObjectName("gen_markers_run_btn")
        self.gridLayout_3.addWidget(self.gen_markers_run_btn, 4, 1, 1, 1)
        self.verticalLayout.addWidget(self.groupBox)
        self.label_10 = QtWidgets.QLabel(self.frame)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.label_10.sizePolicy().hasHeightForWidth())
        self.label_10.setSizePolicy(sizePolicy)
        self.label_10.setObjectName("label_10")
        self.verticalLayout.addWidget(self.label_10)
        spacerItem = QtWidgets.QSpacerItem(20, 40,
                                           QtWidgets.QSizePolicy.Minimum,
                                           QtWidgets.QSizePolicy.Expanding)
        self.verticalLayout.addItem(spacerItem)
        self.horizontalLayout_2.addWidget(self.frame)
        self.gen_marker_Gview = QtWidgets.QWidget(self.gen_markers_tab)
        self.gen_marker_Gview.setStyleSheet(
            "background-color:rgb(0, 170, 255);\\n")
        self.gen_marker_Gview.setObjectName("gen_marker_Gview")
        self.gridLayout_4 = QtWidgets.QGridLayout(self.gen_marker_Gview)
        self.gridLayout_4.setObjectName("gridLayout_4")
        self.horizontalLayout_2.addWidget(self.gen_marker_Gview)
        self.tabWidget.addTab(self.gen_markers_tab, "")
        self.gen_board_tab = QtWidgets.QWidget()
        self.gen_board_tab.setObjectName("gen_board_tab")
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.gen_board_tab)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.frame_2 = QtWidgets.QFrame(self.gen_board_tab)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed,
                                           QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.frame_2.sizePolicy().hasHeightForWidth())
        self.frame_2.setSizePolicy(sizePolicy)
        self.frame_2.setMinimumSize(QtCore.QSize(0, 0))
        self.frame_2.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_2.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_2.setObjectName("frame_2")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.frame_2)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.groupBox_2 = QtWidgets.QGroupBox(self.frame_2)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.groupBox_2.sizePolicy().hasHeightForWidth())
        self.groupBox_2.setSizePolicy(sizePolicy)
        self.groupBox_2.setMinimumSize(QtCore.QSize(300, 0))
        self.groupBox_2.setMaximumSize(QtCore.QSize(16777215, 16777215))
        self.groupBox_2.setAutoFillBackground(False)
        self.groupBox_2.setObjectName("groupBox_2")
        self.gridLayout_2 = QtWidgets.QGridLayout(self.groupBox_2)
        self.gridLayout_2.setObjectName("gridLayout_2")
        self.label_6 = QtWidgets.QLabel(self.groupBox_2)
        self.label_6.setObjectName("label_6")
        self.gridLayout_2.addWidget(self.label_6, 1, 0, 1, 1)
        self.gen_board_scr_w = QtWidgets.QSpinBox(self.groupBox_2)
        self.gen_board_scr_w.setMaximum(1000000)
        self.gen_board_scr_w.setProperty("value", 2560)
        self.gen_board_scr_w.setObjectName("gen_board_scr_w")
        self.gridLayout_2.addWidget(self.gen_board_scr_w, 1, 1, 1, 1)
        self.gen_board_run_btn = QtWidgets.QPushButton(self.groupBox_2)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.gen_board_run_btn.sizePolicy().hasHeightForWidth())
        self.gen_board_run_btn.setSizePolicy(sizePolicy)
        icon2 = QtGui.QIcon()
        icon2.addPixmap(QtGui.QPixmap("Resources/icons/chessboard.svg"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.gen_board_run_btn.setIcon(icon2)
        self.gen_board_run_btn.setIconSize(QtCore.QSize(30, 30))
        self.gen_board_run_btn.setObjectName("gen_board_run_btn")
        self.gridLayout_2.addWidget(self.gen_board_run_btn, 3, 1, 1, 1)
        self.label_9 = QtWidgets.QLabel(self.groupBox_2)
        self.label_9.setObjectName("label_9")
        self.gridLayout_2.addWidget(self.label_9, 2, 0, 1, 1)
        self.gen_board_scr_h = QtWidgets.QSpinBox(self.groupBox_2)
        self.gen_board_scr_h.setMaximum(1000000)
        self.gen_board_scr_h.setProperty("value", 1440)
        self.gen_board_scr_h.setObjectName("gen_board_scr_h")
        self.gridLayout_2.addWidget(self.gen_board_scr_h, 2, 1, 1, 1)
        self.gen_board_save_btn = QtWidgets.QPushButton(self.groupBox_2)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.gen_board_save_btn.sizePolicy().hasHeightForWidth())
        self.gen_board_save_btn.setSizePolicy(sizePolicy)
        self.gen_board_save_btn.setIcon(icon)
        self.gen_board_save_btn.setIconSize(QtCore.QSize(30, 30))
        self.gen_board_save_btn.setObjectName("gen_board_save_btn")
        self.gridLayout_2.addWidget(self.gen_board_save_btn, 3, 0, 1, 1)
        self.label_5 = QtWidgets.QLabel(self.groupBox_2)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.label_5.sizePolicy().hasHeightForWidth())
        self.label_5.setSizePolicy(sizePolicy)
        self.label_5.setObjectName("label_5")
        self.gridLayout_2.addWidget(self.label_5, 0, 0, 1, 1)
        self.gen_board_arucoDict = QtWidgets.QComboBox(self.groupBox_2)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.gen_board_arucoDict.sizePolicy().hasHeightForWidth())
        self.gen_board_arucoDict.setSizePolicy(sizePolicy)
        self.gen_board_arucoDict.setObjectName("gen_board_arucoDict")
        self.gridLayout_2.addWidget(self.gen_board_arucoDict, 0, 1, 1, 1)
        self.verticalLayout_2.addWidget(self.groupBox_2)
        self.label_11 = QtWidgets.QLabel(self.frame_2)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.label_11.sizePolicy().hasHeightForWidth())
        self.label_11.setSizePolicy(sizePolicy)
        self.label_11.setObjectName("label_11")
        self.verticalLayout_2.addWidget(self.label_11)
        spacerItem1 = QtWidgets.QSpacerItem(20, 40,
                                            QtWidgets.QSizePolicy.Minimum,
                                            QtWidgets.QSizePolicy.Expanding)
        self.verticalLayout_2.addItem(spacerItem1)
        self.horizontalLayout_3.addWidget(self.frame_2)
        self.gen_board_Gview = QtWidgets.QWidget(self.gen_board_tab)
        self.gen_board_Gview.setStyleSheet(
            "background-color:rgb(0, 170, 255);\\n")
        self.gen_board_Gview.setObjectName("gen_board_Gview")
        self.gridLayout_5 = QtWidgets.QGridLayout(self.gen_board_Gview)
        self.gridLayout_5.setObjectName("gridLayout_5")
        self.horizontalLayout_3.addWidget(self.gen_board_Gview)
        self.tabWidget.addTab(self.gen_board_tab, "")
        self.calibration_tab = QtWidgets.QWidget()
        self.calibration_tab.setObjectName("calibration_tab")
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout(self.calibration_tab)
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.frame_3 = QtWidgets.QFrame(self.calibration_tab)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.frame_3.sizePolicy().hasHeightForWidth())
        self.frame_3.setSizePolicy(sizePolicy)
        self.frame_3.setMinimumSize(QtCore.QSize(250, 0))
        self.frame_3.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_3.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_3.setObjectName("frame_3")
        self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.frame_3)
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.groupBox_3 = QtWidgets.QGroupBox(self.frame_3)
        self.groupBox_3.setObjectName("groupBox_3")
        self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.groupBox_3)
        self.verticalLayout_4.setObjectName("verticalLayout_4")
        self.frame_4 = QtWidgets.QFrame(self.groupBox_3)
        self.frame_4.setMinimumSize(QtCore.QSize(0, 0))
        self.frame_4.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_4.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_4.setObjectName("frame_4")
        self.gridLayout = QtWidgets.QGridLayout(self.frame_4)
        self.gridLayout.setObjectName("gridLayout")
        self.label_13 = QtWidgets.QLabel(self.frame_4)
        self.label_13.setObjectName("label_13")
        self.gridLayout.addWidget(self.label_13, 0, 0, 1, 1)
        self.calibrate_aruco_dict = QtWidgets.QComboBox(self.frame_4)
        self.calibrate_aruco_dict.setObjectName("calibrate_aruco_dict")
        self.gridLayout.addWidget(self.calibrate_aruco_dict, 0, 1, 1, 1)
        self.label_7 = QtWidgets.QLabel(self.frame_4)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.label_7.sizePolicy().hasHeightForWidth())
        self.label_7.setSizePolicy(sizePolicy)
        self.label_7.setObjectName("label_7")
        self.gridLayout.addWidget(self.label_7, 1, 0, 1, 1)
        self.calibrate_screen_width = QtWidgets.QSpinBox(self.frame_4)
        self.calibrate_screen_width.setMaximum(1000000)
        self.calibrate_screen_width.setProperty("value", 2560)
        self.calibrate_screen_width.setObjectName("calibrate_screen_width")
        self.gridLayout.addWidget(self.calibrate_screen_width, 1, 1, 1, 1)
        self.label_8 = QtWidgets.QLabel(self.frame_4)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.label_8.sizePolicy().hasHeightForWidth())
        self.label_8.setSizePolicy(sizePolicy)
        self.label_8.setObjectName("label_8")
        self.gridLayout.addWidget(self.label_8, 2, 0, 1, 1)
        self.calibrate_screem_height = QtWidgets.QSpinBox(self.frame_4)
        self.calibrate_screem_height.setMaximum(1000000)
        self.calibrate_screem_height.setProperty("value", 1440)
        self.calibrate_screem_height.setDisplayIntegerBase(10)
        self.calibrate_screem_height.setObjectName("calibrate_screem_height")
        self.gridLayout.addWidget(self.calibrate_screem_height, 2, 1, 1, 1)
        self.label_12 = QtWidgets.QLabel(self.frame_4)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.label_12.sizePolicy().hasHeightForWidth())
        self.label_12.setSizePolicy(sizePolicy)
        self.label_12.setObjectName("label_12")
        self.gridLayout.addWidget(self.label_12, 3, 0, 1, 1)
        self.calibrate_screen_inches = QtWidgets.QDoubleSpinBox(self.frame_4)
        self.calibrate_screen_inches.setDecimals(1)
        self.calibrate_screen_inches.setMaximum(10000.0)
        self.calibrate_screen_inches.setSingleStep(0.1)
        self.calibrate_screen_inches.setProperty("value", 27.0)
        self.calibrate_screen_inches.setObjectName("calibrate_screen_inches")
        self.gridLayout.addWidget(self.calibrate_screen_inches, 3, 1, 1, 1)
        self.calibrate_progress = QtWidgets.QProgressBar(self.frame_4)
        self.calibrate_progress.setProperty("value", 0)
        self.calibrate_progress.setObjectName("calibrate_progress")
        self.gridLayout.addWidget(self.calibrate_progress, 4, 0, 1, 1)
        self.calibrate_start_btn = QtWidgets.QPushButton(self.frame_4)
        icon3 = QtGui.QIcon()
        icon3.addPixmap(QtGui.QPixmap("Resources/icons/speedometer.svg"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.calibrate_start_btn.setIcon(icon3)
        self.calibrate_start_btn.setObjectName("calibrate_start_btn")
        self.gridLayout.addWidget(self.calibrate_start_btn, 4, 1, 1, 1)
        self.verticalLayout_4.addWidget(self.frame_4)
        self.label_14 = QtWidgets.QLabel(self.groupBox_3)
        self.label_14.setObjectName("label_14")
        self.verticalLayout_4.addWidget(self.label_14)
        self.calibrate_load_photo = QtWidgets.QPushButton(self.groupBox_3)
        icon4 = QtGui.QIcon()
        icon4.addPixmap(QtGui.QPixmap("Resources/icons/camera.svg"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.calibrate_load_photo.setIcon(icon4)
        self.calibrate_load_photo.setAutoRepeat(False)
        self.calibrate_load_photo.setAutoDefault(True)
        self.calibrate_load_photo.setDefault(False)
        self.calibrate_load_photo.setFlat(False)
        self.calibrate_load_photo.setObjectName("calibrate_load_photo")
        self.verticalLayout_4.addWidget(self.calibrate_load_photo)
        self.calibrate_photo_list = QtWidgets.QListWidget(self.groupBox_3)
        self.calibrate_photo_list.setEditTriggers(
            QtWidgets.QAbstractItemView.DoubleClicked)
        self.calibrate_photo_list.setObjectName("calibrate_photo_list")
        self.verticalLayout_4.addWidget(self.calibrate_photo_list)
        self.verticalLayout_3.addWidget(self.groupBox_3)
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
        self.calibrate_load_settings = QtWidgets.QPushButton(self.frame_3)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.calibrate_load_settings.sizePolicy().hasHeightForWidth())
        self.calibrate_load_settings.setSizePolicy(sizePolicy)
        icon5 = QtGui.QIcon()
        icon5.addPixmap(QtGui.QPixmap("Resources/icons/settings.svg"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.calibrate_load_settings.setIcon(icon5)
        self.calibrate_load_settings.setObjectName("calibrate_load_settings")
        self.horizontalLayout_5.addWidget(self.calibrate_load_settings)
        self.verticalLayout_3.addLayout(self.horizontalLayout_5)
        self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_6.setObjectName("horizontalLayout_6")
        self.calibrate_save_settings = QtWidgets.QPushButton(self.frame_3)
        self.calibrate_save_settings.setIcon(icon)
        self.calibrate_save_settings.setObjectName("calibrate_save_settings")
        self.horizontalLayout_6.addWidget(self.calibrate_save_settings)
        self.verticalLayout_3.addLayout(self.horizontalLayout_6)
        self.horizontalLayout_4.addWidget(self.frame_3)
        self.calibrate_Gview = QtWidgets.QWidget(self.calibration_tab)
        self.calibrate_Gview.setStyleSheet(
            "background-color:rgb(0, 170, 255);\\n")
        self.calibrate_Gview.setObjectName("calibrate_Gview")
        self.gridLayout_6 = QtWidgets.QGridLayout(self.calibrate_Gview)
        self.gridLayout_6.setObjectName("gridLayout_6")
        self.horizontalLayout_4.addWidget(self.calibrate_Gview)
        self.tabWidget.addTab(self.calibration_tab, "")
        self.video_tracking_tab = QtWidgets.QWidget()
        self.video_tracking_tab.setObjectName("video_tracking_tab")
        self.horizontalLayout_8 = QtWidgets.QHBoxLayout(
            self.video_tracking_tab)
        self.horizontalLayout_8.setObjectName("horizontalLayout_8")
        self.frame_5 = QtWidgets.QFrame(self.video_tracking_tab)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.frame_5.sizePolicy().hasHeightForWidth())
        self.frame_5.setSizePolicy(sizePolicy)
        self.frame_5.setMinimumSize(QtCore.QSize(0, 0))
        self.frame_5.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_5.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_5.setObjectName("frame_5")
        self.horizontalLayout_7 = QtWidgets.QHBoxLayout(self.frame_5)
        self.horizontalLayout_7.setObjectName("horizontalLayout_7")
        self.groupBox_5 = QtWidgets.QGroupBox(self.frame_5)
        self.groupBox_5.setObjectName("groupBox_5")
        self.horizontalLayout_7.addWidget(self.groupBox_5)
        self.video = QVideoWidget(self.frame_5)
        self.video.setStyleSheet("background-color:rgb(0, 170, 255);\\n")
        self.video.setObjectName("video")
        self.horizontalLayout_7.addWidget(self.video)
        self.horizontalLayout_8.addWidget(self.frame_5)
        self.tabWidget.addTab(self.video_tracking_tab, "")
        self.calibration_errors_tab = QtWidgets.QWidget()
        self.calibration_errors_tab.setObjectName("calibration_errors_tab")
        self.tabWidget.addTab(self.calibration_errors_tab, "")
        self.horizontalLayout.addWidget(self.tabWidget)
        self.groupBox_4 = QtWidgets.QGroupBox(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.groupBox_4.sizePolicy().hasHeightForWidth())
        self.groupBox_4.setSizePolicy(sizePolicy)
        self.groupBox_4.setMinimumSize(QtCore.QSize(250, 20))
        self.groupBox_4.setObjectName("groupBox_4")
        self.gridLayout_7 = QtWidgets.QGridLayout(self.groupBox_4)
        self.gridLayout_7.setObjectName("gridLayout_7")
        self.label_18 = QtWidgets.QLabel(self.groupBox_4)
        self.label_18.setObjectName("label_18")
        self.gridLayout_7.addWidget(self.label_18, 1, 2, 1, 1)
        self.label_20 = QtWidgets.QLabel(self.groupBox_4)
        self.label_20.setObjectName("label_20")
        self.gridLayout_7.addWidget(self.label_20, 2, 2, 1, 1)
        self.label_19 = QtWidgets.QLabel(self.groupBox_4)
        self.label_19.setObjectName("label_19")
        self.gridLayout_7.addWidget(self.label_19, 2, 0, 1, 1)
        spacerItem2 = QtWidgets.QSpacerItem(20, 40,
                                            QtWidgets.QSizePolicy.Minimum,
                                            QtWidgets.QSizePolicy.Expanding)
        self.gridLayout_7.addItem(spacerItem2, 3, 0, 1, 1)
        self.label_16 = QtWidgets.QLabel(self.groupBox_4)
        self.label_16.setObjectName("label_16")
        self.gridLayout_7.addWidget(self.label_16, 0, 2, 1, 1)
        self.label_15 = QtWidgets.QLabel(self.groupBox_4)
        self.label_15.setObjectName("label_15")
        self.gridLayout_7.addWidget(self.label_15, 0, 0, 1, 1)
        self.line_2 = QtWidgets.QFrame(self.groupBox_4)
        self.line_2.setFrameShadow(QtWidgets.QFrame.Plain)
        self.line_2.setLineWidth(5)
        self.line_2.setFrameShape(QtWidgets.QFrame.VLine)
        self.line_2.setObjectName("line_2")
        self.gridLayout_7.addWidget(self.line_2, 2, 1, 1, 1)
        self.label_17 = QtWidgets.QLabel(self.groupBox_4)
        self.label_17.setObjectName("label_17")
        self.gridLayout_7.addWidget(self.label_17, 1, 0, 1, 1)
        self.line = QtWidgets.QFrame(self.groupBox_4)
        self.line.setFrameShadow(QtWidgets.QFrame.Plain)
        self.line.setLineWidth(5)
        self.line.setFrameShape(QtWidgets.QFrame.VLine)
        self.line.setObjectName("line")
        self.gridLayout_7.addWidget(self.line, 0, 1, 1, 1)
        self.line_3 = QtWidgets.QFrame(self.groupBox_4)
        self.line_3.setFrameShadow(QtWidgets.QFrame.Plain)
        self.line_3.setLineWidth(5)
        self.line_3.setFrameShape(QtWidgets.QFrame.VLine)
        self.line_3.setObjectName("line_3")
        self.gridLayout_7.addWidget(self.line_3, 1, 1, 1, 1)
        self.horizontalLayout.addWidget(self.groupBox_4)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 1709, 21))
        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(3)
        self.gen_markers_arucoDict.setCurrentIndex(-1)
        self.gen_board_arucoDict.setCurrentIndex(-1)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
        MainWindow.setTabOrder(self.gen_markers_arucoDict,
                               self.gen_markers_num)
        MainWindow.setTabOrder(self.gen_markers_num, self.gen_markers_size)
        MainWindow.setTabOrder(self.gen_markers_size, self.gen_markers_dpi)
        MainWindow.setTabOrder(self.gen_markers_dpi, self.gen_markers_run_btn)
        MainWindow.setTabOrder(self.gen_markers_run_btn,
                               self.gen_markers_save_btn)
        MainWindow.setTabOrder(self.gen_markers_save_btn,
                               self.gen_board_arucoDict)
        MainWindow.setTabOrder(self.gen_board_arucoDict, self.gen_board_scr_w)
        MainWindow.setTabOrder(self.gen_board_scr_w, self.gen_board_scr_h)
        MainWindow.setTabOrder(self.gen_board_scr_h, self.gen_board_run_btn)
        MainWindow.setTabOrder(self.gen_board_run_btn, self.gen_board_save_btn)
        MainWindow.setTabOrder(self.gen_board_save_btn,
                               self.calibrate_aruco_dict)
        MainWindow.setTabOrder(self.calibrate_aruco_dict,
                               self.calibrate_screen_width)
        MainWindow.setTabOrder(self.calibrate_screen_width,
                               self.calibrate_screem_height)
        MainWindow.setTabOrder(self.calibrate_screem_height,
                               self.calibrate_screen_inches)
        MainWindow.setTabOrder(self.calibrate_screen_inches,
                               self.calibrate_start_btn)
        MainWindow.setTabOrder(self.calibrate_start_btn,
                               self.calibrate_load_photo)
        MainWindow.setTabOrder(self.calibrate_load_photo,
                               self.calibrate_load_settings)
        MainWindow.setTabOrder(self.calibrate_load_settings,
                               self.calibrate_save_settings)
        MainWindow.setTabOrder(self.calibrate_save_settings,
                               self.calibrate_photo_list)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.groupBox.setTitle(_translate("MainWindow", "Пареметры"))
        self.label.setText(_translate("MainWindow", "*Набор меток"))
        self.gen_markers_save_btn.setText(_translate("MainWindow",
                                                     "Сохранить"))
        self.label_4.setText(_translate("MainWindow", "*DPI печати принтера"))
        self.label_2.setText(_translate("MainWindow", "*Количество меток"))
        self.label_3.setText(_translate("MainWindow", "*Размер метки, мм"))
        self.gen_markers_run_btn.setText(
            _translate("MainWindow", "Сгенерировать"))
        self.label_10.setText(
            _translate("MainWindow", "(*поле обязательное для заполнения)"))
        self.tabWidget.setTabText(self.tabWidget.indexOf(self.gen_markers_tab),
                                  _translate("MainWindow", "Генерация меток"))
        self.groupBox_2.setTitle(_translate("MainWindow", "Пареметры"))
        self.label_6.setText(_translate("MainWindow", "*Ширина монитора, px"))
        self.gen_board_run_btn.setText(
            _translate("MainWindow", "Сгенерировать"))
        self.label_9.setText(_translate("MainWindow", "*Высота монитора, px"))
        self.gen_board_save_btn.setText(_translate("MainWindow", "Сохранить"))
        self.label_5.setText(_translate("MainWindow", "*Набор меток"))
        self.label_11.setText(
            _translate("MainWindow", "(*поле обязательное для заполнения)"))
        self.tabWidget.setTabText(
            self.tabWidget.indexOf(self.gen_board_tab),
            _translate("MainWindow", "Генерация доски для калибровки"))
        self.groupBox_3.setTitle(
            _translate("MainWindow", "Параметры калибровки"))
        self.label_13.setText(_translate("MainWindow", "*Набор меток"))
        self.label_7.setText(_translate("MainWindow", "*Ширина монитора, px"))
        self.label_8.setText(_translate("MainWindow", "*Высота монитора, px"))
        self.label_12.setText(
            _translate("MainWindow", "*Диагональ монитора в дюймах"))
        self.calibrate_start_btn.setText(
            _translate("MainWindow", "Откалибровать"))
        self.label_14.setText(
            _translate("MainWindow", "(*поле обязательное для заполнения)"))
        self.calibrate_load_photo.setText(
            _translate("MainWindow", "Загрузить фотографии"))
        self.calibrate_load_settings.setText(
            _translate("MainWindow", "Загрузить настройки калибровки"))
        self.calibrate_save_settings.setText(
            _translate("MainWindow", "Сохранить настройки калибровки"))
        self.tabWidget.setTabText(
            self.tabWidget.indexOf(self.calibration_tab),
            _translate("MainWindow", "Калибровка камеры"))
        self.groupBox_5.setTitle(_translate("MainWindow", "GroupBox"))
        self.tabWidget.setTabText(
            self.tabWidget.indexOf(self.video_tracking_tab),
            _translate("MainWindow", "Видеотрекинг"))
        self.tabWidget.setTabText(
            self.tabWidget.indexOf(self.calibration_errors_tab),
            _translate("MainWindow", "Вычисление ошибок калибровки"))
        self.groupBox_4.setTitle(
            _translate("MainWindow", "Систмема распознавания"))
        self.label_18.setText(_translate("MainWindow", "-"))
        self.label_20.setText(_translate("MainWindow", "-"))
        self.label_19.setText(_translate("MainWindow", "Набор меток:"))
        self.label_16.setText(_translate("MainWindow", "Нет"))
        self.label_15.setText(
            _translate("MainWindow", "Система откалибрована:"))
        self.label_17.setText(
            _translate("MainWindow", "Сотношение сторон фотографий:"))
Пример #6
0
    def init_ui(self):
        conf_for_blank = '''
        QPushButton{
            border: none;
            margin: 0px;
            padding: 0px;
            background-color:#F0F0F0;
        }
        '''
        config = '''
        QPushButton{
            border: none;
            margin: 0px;
            padding: 0px;
            background-color:#F0F0F0;
        }
        QPushButton:hover{
            background-color: #B4B4B4;
            border-radius:7px;
            width: 30px;
        }
        '''

        global hboxLayout
        global hboxLayout2
        global vboxLayout
        global videowidget
        global openBtn

        # создание экземпляра(объекта) класса QMediaPlayer() и передача аргуметов
        # QMediaPlayer.VideoSurface указывает что он 'служит' для воспроизведения видео
        self.mediaPlayer = QMediaPlayer(None, QMediaPlayer.VideoSurface)

        # создание экземпляра(объекта) класса QVideoWidget()
        videowidget = QVideoWidget()
        videowidget.setStyleSheet('background-color: #B4B4B4;')

        # создание button(кнопки открыть)
        openBtn = QPushButton()
        openBtn.setStyleSheet(config)
        openBtn.setIcon(QIcon(resource_path(r'ico\folders.png')))
        openBtn.setIconSize(QSize(20, 20))
        openBtn.clicked.connect(self.open_file)
        openBtn.setToolTip('Открытие папок для просмотра файлов')
        openBtn.setToolTipDuration(2500)

        # создание button (кнопки для запуска)
        self.playBtn = QPushButton()
        self.playBtn.setEnabled(False)
        self.playBtn.setFlat(True)
        self.playBtn.setStyleSheet(config)
        self.playBtn.setIcon(QIcon(resource_path(r'ico\play.png')))
        self.playBtn.setIconSize(QSize(40, 40))
        self.playBtn.clicked.connect(self.play_video)
        # self.playBtn.clicked.connect(self.play_video)

        # создание button(кнопки для перемотки вперед)

        self.forwardBtn = QPushButton()
        self.forwardBtn.setEnabled(False)
        self.forwardBtn.setIcon(QIcon(resource_path(r'ico\forward.png')))
        self.forwardBtn.setStyleSheet(config)
        self.forwardBtn.setIconSize(QSize(20, 20))
        self.forwardBtn.clicked.connect(self.go_forward)

        # создание button (для перемотки назад)
        self.backBtn = QPushButton()
        self.backBtn.setEnabled(False)
        self.backBtn.setIcon(QIcon(resource_path(r'ico\backward .png')))
        self.backBtn.setStyleSheet(config)
        self.backBtn.setIconSize(QSize(20, 20))
        self.backBtn.clicked.connect(self.go_back)

        # для volume(громкости)
        self.volumeBtn = QPushButton()
        self.volumeBtn.setObjectName('volume_btn')
        self.volumeBtn.setIcon(QIcon(resource_path(r'ico\volume1.png')))
        self.volumeBtn.setStyleSheet(config)
        self.volumeBtn.setIconSize(QSize(17, 17))
        self.volumeBtn.clicked.connect(self.volume)

        # настройка button(кнопок)
        self.screenBtn = QPushButton()
        self.screenBtn.setObjectName('fullscreen')
        self.screenBtn.setStyleSheet(config)
        self.screenBtn.setIcon(QIcon(resource_path(r'ico\fullscreen.png')))
        self.screenBtn.setIconSize(QSize(19, 19))
        self.screenBtn.clicked.connect(self.full_screen)
        self.screenBtn.setToolTip('Переключить на полноэкранный размер')
        self.screenBtn.setToolTipDuration(2500)
        # ----- кнопки для пустых мест ----- #

        # создание button (для окна настроек)
        self.imageBtn = QPushButton()
        self.imageBtn.setIcon(QIcon(resource_path(r'ico\photo.png')))
        self.imageBtn.setToolTip(
            'Открывает второе окно которое позволяет взимодействовать с изображениями'
        )
        self.imageBtn.setIconSize((QSize(18, 18)))
        self.imageBtn.setEnabled(True)
        self.imageBtn.setStyleSheet(config)

        self.themeBtn = Switch(thumb_radius=11, track_radius=8)
        self.themeBtn.setObjectName('default')
        self.themeBtn.setToolTip('Изменить задний фон')
        self.themeBtn.clicked.connect(self.change_to_dark_theme)

        self.blankBtn = QPushButton()
        self.blankBtn.setEnabled(False)
        self.blankBtn.setStyleSheet(conf_for_blank)
        # --------------------------------------- #

        # создание slider'а
        self.slider = MySlider(orient=Qt.Horizontal)
        self.slider.sliderMoved.connect(self.set_position)

        # создания slider для volume
        self.hslider = MySlider(orient=Qt.Horizontal)
        self.hslider.setRange(0, 100)
        self.hslider.setMaximumHeight(7)
        self.hslider.sliderMoved.connect(self.set_volume_position)
        self.hslider.setMaximumWidth(80)
        self.hslider.setSliderPosition(100)

        # создания label'а
        self.label1 = QLabel('0:00 /')
        self.label1.setToolTip('Прошло времени')
        self.label1.setFont(QFont('SansSerif', 8, QFont.Bold))
        self.label2 = QLabel('0:00')
        self.label2.setToolTip('Общая продолжительность')
        self.label2.setFont(QFont('SansSerif', 8, QFont.Bold))

        # создание hbox layout
        hboxLayout = QHBoxLayout()
        hboxLayout.setContentsMargins(0, 0, 0, 0)

        # создание hbox2 layout
        hboxLayout2 = QHBoxLayout()
        hboxLayout.setContentsMargins(0, 0, 0, 0)

        # добавления виджетов в hbox2 layout
        hboxLayout2.addWidget(self.label1)
        hboxLayout2.addWidget(self.label2)
        hboxLayout2.addWidget(self.slider)
        hboxLayout2.addWidget(self.volumeBtn)
        hboxLayout2.addWidget(self.hslider)

        # добавления виджетов в hbox layout
        hboxLayout.addWidget(self.themeBtn)
        hboxLayout.addWidget(self.blankBtn)
        hboxLayout.addWidget(openBtn)
        hboxLayout.addWidget(self.backBtn)
        hboxLayout.addWidget(self.playBtn)
        hboxLayout.addWidget(self.forwardBtn)
        hboxLayout.addWidget(self.imageBtn)
        hboxLayout.addWidget(self.screenBtn)

        # self.frame = MyFrame()

        vboxLayout = QVBoxLayout()
        # vboxLayout.addWidget(MyFrame())
        vboxLayout.addWidget(videowidget)
        vboxLayout.addLayout(hboxLayout2)
        vboxLayout.addLayout(hboxLayout)

        self.setLayout(vboxLayout)
        self.mediaPlayer.setVideoOutput(videowidget)

        # обработчики медиа сигналов
        self.mediaPlayer.stateChanged.connect(self.media_state_changed)
        self.mediaPlayer.positionChanged.connect(self.position_changed)
        self.mediaPlayer.durationChanged.connect(self.duration_changed)

        self.mediaPlayer.volumeChanged.connect(self.set_volume_position)
        self.mediaPlayer.durationChanged.connect(self.duration_volume)

        # Несколько функций которые вызываются во время взаимодействия с клавишами для удобства
        self.volumeMinSc = QShortcut(QKeySequence('Down'), self)
        self.volumeMinSc.activated.connect(self.min_volume)

        self.volumePlusSc = QShortcut(QKeySequence('Up'), self)
        self.volumePlusSc.activated.connect(self.plus_volume)

        self.forwardSc = QShortcut(QKeySequence('Right'), self)
        self.forwardSc.activated.connect(self.go_forward_with_key)

        self.backSc = QShortcut(QKeySequence('Left'), self)
        self.backSc.activated.connect(self.go_back_with_key)

        self.fullscreenSc = QShortcut(QKeySequence('F'), self)
        self.fullscreenSc.activated.connect(self.full_screen)
Пример #7
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)  # 窗口名称
Пример #8
0
class Ui_NewProject(object):
    def setupUi(self, NewProject):
        NewProject.setObjectName("NewProject")
        NewProject.resize(736, 625)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(":/plugins/Video_UAV_Tracker/icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        NewProject.setWindowIcon(icon)
        self.gridLayout_2 = QtWidgets.QGridLayout(NewProject)
        self.gridLayout_2.setObjectName("gridLayout_2")
        self.gridLayout = QtWidgets.QGridLayout()
        self.gridLayout.setObjectName("gridLayout")
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.video_frame_2 = QVideoWidget(NewProject)
        p = self.video_frame_2.palette()
        p.setColor(QtGui.QPalette.Window, QtCore.Qt.black)
        self.video_frame_2.setPalette(p)
        self.video_frame_2.setAttribute(QtCore.Qt.WA_OpaquePaintEvent)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.video_frame_2.sizePolicy().hasHeightForWidth())
        self.video_frame_2.setSizePolicy(sizePolicy)
        self.video_frame_2.setStyleSheet("background-color: rgb(0, 0, 0);")
        self.video_frame_2.setObjectName("video_frame_2")
        self.horizontalLayout.addWidget(self.video_frame_2)
        self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 15)
        self.horizontalSlider = QtWidgets.QSlider(NewProject)
        self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal)
        self.horizontalSlider.setObjectName("horizontalSlider")
        self.gridLayout.addWidget(self.horizontalSlider, 1, 0, 1, 15)
        self.replayPlay_pushButton = QtWidgets.QPushButton(NewProject)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.replayPlay_pushButton.sizePolicy().hasHeightForWidth())
        self.replayPlay_pushButton.setSizePolicy(sizePolicy)
        self.replayPlay_pushButton.setCheckable(False)
        self.replayPlay_pushButton.setChecked(False)
        self.replayPlay_pushButton.setObjectName("replayPlay_pushButton")
        self.gridLayout.addWidget(self.replayPlay_pushButton, 3, 1, 1, 1)
        self.replayPosition_label = QtWidgets.QLabel(NewProject)
        self.replayPosition_label.setObjectName("replayPosition_label")
        self.gridLayout.addWidget(self.replayPosition_label, 3, 4, 1, 1)
        self.muteButton = QtWidgets.QToolButton(NewProject)
        self.muteButton.setText("")
        self.muteButton.setObjectName("muteButton")
        self.gridLayout.addWidget(self.muteButton, 3, 2, 1, 1)
        self.comboBox = QtWidgets.QComboBox(NewProject)
        self.comboBox.setObjectName("comboBox")
        self.gridLayout.addWidget(self.comboBox, 3, 14, 1, 1)
        self.pushButton_2 = QtWidgets.QPushButton(NewProject)
        self.pushButton_2.setObjectName("pushButton_2")
        self.gridLayout.addWidget(self.pushButton_2, 3, 12, 1, 1)
        self.toolButton_3 = QtWidgets.QToolButton(NewProject)
        icon1 = QtGui.QIcon()
        icon1.addPixmap(QtGui.QPixmap(":/plugins/Video_UAV_Tracker/mIconFormSelect.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.toolButton_3.setIcon(icon1)
        self.toolButton_3.setObjectName("toolButton_3")
        self.gridLayout.addWidget(self.toolButton_3, 3, 11, 1, 1)
        self.toolButton_2 = QtWidgets.QToolButton(NewProject)
        icon2 = QtGui.QIcon()
        icon2.addPixmap(QtGui.QPixmap(":/VgisIcon/mActionAtlasNext.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.toolButton_2.setIcon(icon2)
        self.toolButton_2.setObjectName("toolButton_2")
        self.gridLayout.addWidget(self.toolButton_2, 3, 9, 1, 1)
        self.SkipFortoolButton_8 = QtWidgets.QToolButton(NewProject)
        self.SkipFortoolButton_8.setStyleSheet("")
        icon3 = QtGui.QIcon()
        icon3.addPixmap(QtGui.QPixmap(":/VgisIcon/mActionArrowRight.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.SkipFortoolButton_8.setIcon(icon3)
        self.SkipFortoolButton_8.setObjectName("SkipFortoolButton_8")
        self.gridLayout.addWidget(self.SkipFortoolButton_8, 3, 8, 1, 1)
        self.SkipBacktoolButton_7 = QtWidgets.QToolButton(NewProject)
        self.SkipBacktoolButton_7.setStyleSheet("")
        icon4 = QtGui.QIcon()
        icon4.addPixmap(QtGui.QPixmap(":/VgisIcon/mActionArrowLeft.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.SkipBacktoolButton_7.setIcon(icon4)
        self.SkipBacktoolButton_7.setObjectName("SkipBacktoolButton_7")
        self.gridLayout.addWidget(self.SkipBacktoolButton_7, 3, 7, 1, 1)
        self.toolButton = QtWidgets.QToolButton(NewProject)
        icon5 = QtGui.QIcon()
        icon5.addPixmap(QtGui.QPixmap(":/VgisIcon/mActionAtlasPrev.svg"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.toolButton.setIcon(icon5)
        self.toolButton.setObjectName("toolButton")
        self.gridLayout.addWidget(self.toolButton, 3, 6, 1, 1)
        self.pushButton = QtWidgets.QPushButton(NewProject)
        self.pushButton.setObjectName("pushButton")
        self.gridLayout.addWidget(self.pushButton, 3, 0, 1, 1)
        self.gridLayout_2.addLayout(self.gridLayout, 0, 0, 1, 1)

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

    def retranslateUi(self, NewProject):
        _translate = QtCore.QCoreApplication.translate
        NewProject.setWindowTitle(_translate("NewProject", "Video UAV Tracker - New Project"))
        self.replayPlay_pushButton.setText(_translate("NewProject", "Play/Pause"))
        self.replayPosition_label.setText(_translate("NewProject", "-:- / -:-"))
        self.pushButton_2.setToolTip(_translate("NewProject", "<html><head/><body><p>Synchronize actual video frame with selected GPS time</p></body></html>"))
        self.comboBox.setToolTip(_translate("NewProject", "<html><head/><body><p> GPS time</p></body></html>"))
        self.pushButton_2.setText(_translate("NewProject", "Synchronize!"))
        self.toolButton_3.setToolTip(_translate("NewProject", "<html><head/><body><p>Add point shape database to project</p></body></html>"))
        #self.toolButton_3.setText(_translate("NewProject", "DB"))
        self.toolButton_2.setToolTip(_translate("NewProject", "<html><head/><body><p>Next second</p></body></html>"))
        self.toolButton_2.setText(_translate("NewProject", ">>"))
        self.SkipFortoolButton_8.setToolTip(_translate("NewProject", "<html><head/><body><p>Next frame</p></body></html>"))
        self.SkipFortoolButton_8.setText(_translate("NewProject", ">"))
        self.SkipBacktoolButton_7.setToolTip(_translate("NewProject", "<html><head/><body><p>Previous frame</p></body></html>"))
        self.SkipBacktoolButton_7.setText(_translate("NewProject", "<"))
        self.toolButton.setToolTip(_translate("NewProject", "<html><head/><body><p>Previous second</p></body></html>"))
        self.toolButton.setText(_translate("NewProject", "<<"))
        self.pushButton.setToolTip(_translate("NewProject", "<html><head/><body><p>Select video and relative gpx</p></body></html>"))
        self.pushButton.setText(_translate("NewProject", "Select Video and GPX"))
Пример #9
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"))
Пример #10
0
class IntroWindow(QMainWindow, Form):
    def __init__(self):
        Form.__init__(self)
        QMainWindow.__init__(self)
        self.setWindowIcon(QIcon("logo.png"))

        p = self.palette()
        p.setColor(QPalette.Window, Qt.gray)
        self.setPalette(p)

        self.setupUi(self)

        self.a = 1
        self.videowidget = QVideoWidget()
        self.vertical.addWidget(self.videowidget)
        self.videoplayer = QMediaPlayer(None, QMediaPlayer.VideoSurface)
        self.videoplayer.setVideoOutput(self.videowidget)
        self.sliderfilm.setRange(0, 0)
        self.volume.setRange(0, 100)
        self.videoplayer.setVolume(100)
        self.volume.setValue(100)

        self.play.setEnabled(False)
        self.increaseRate.setEnabled(False)
        self.decreaseRate.setEnabled(False)

        # putting Icons on buttons

        self.increaseRate.setIcon(self.style().standardIcon(
            QStyle.SP_MediaSeekForward))
        self.decreaseRate.setIcon(self.style().standardIcon(
            QStyle.SP_MediaSeekBackward))
        self.play.setIcon(self.style().standardIcon(QStyle.SP_MediaPlay))
        self.open.setIcon(self.style().standardIcon(QStyle.SP_DirHomeIcon))
        self.skipforward.setIcon(self.style().standardIcon(
            QStyle.SP_MediaSkipForward))
        self.skipback.setIcon(self.style().standardIcon(
            QStyle.SP_MediaSkipBackward))
        self.stop.setIcon(self.style().standardIcon(QStyle.SP_MediaStop))

        self.sliderfilm.sliderMoved.connect(self.setpos)
        self.videoplayer.positionChanged.connect(self.position)
        self.videoplayer.durationChanged.connect(self.changed)
        self.videoplayer.volumeChanged.connect(self.setvolpos)
        self.volume.sliderMoved.connect(self.setvolpos)
        self.actionOpen.triggered.connect(self.Loadvideo)
        self.actionSearch_By_Tag.triggered.connect(self.opensecond)
        self.actionFullscreen.triggered.connect(self.screen)
        self.skipforward.clicked.connect(self.skipforw)
        self.skipback.clicked.connect(self.skipbac)
        self.increaseRate.clicked.connect(self.incRate)
        self.decreaseRate.clicked.connect(self.decRate)
        self.play.clicked.connect(self.play_video)
        self.open.clicked.connect(lambda: self.Loadvideo(self.videoplayer))
        self.stop.clicked.connect(self.stopp)
        self.listView.hide()
        self.addtolist()
        self.listviewstatus = 0
        self.listbtn.clicked.connect(lambda: self.list())
        self.listView.itemClicked.connect(self.listwidgetclicked)
        self.theme1.triggered.connect(lambda: self.theme01())
        self.theme2.triggered.connect(lambda: self.theme02())
        self.theme3.triggered.connect(lambda: self.theme03())
        self.theme4.triggered.connect(lambda: self.theme04())

        # def itemClicked(item):
        #     print("sassss")

        # self.button = QPushButton("button", self)
        ####how to hid window flag
        # self.setWindowFlags(Qt.Window | Qt.FramelessWindowHint)
        # self.hide()
        # self.show()

    def stopp(self):
        self.stop.setEnabled(False)
        self.videoplayer.stop()
        self.videoplayer.setPosition(0)

    def listwidgetclicked(self, item):
        t = item.text()
        pt = datetime.strptime(t, "%H:%M:%S")
        total_seconds = pt.second + pt.minute * 60 + pt.hour * 3600
        if self.a == 0:
            self.videoplayer.setPosition(total_seconds * 1000)

    def list(self):
        if self.listviewstatus % 2 == 1:
            self.listView.hide()
            self.listbtn.setText("^")
            self.listviewstatus += 1
        else:
            self.listbtn.setText("v")
            self.listviewstatus += 1
            self.listView.show()

    # def resizeEvent(self, cls):
    #     print(self.geometry())
    #     width = self.frameGeometry().width()
    #     height = self.frameGeometry().height()
    #     self.button.move(width - 200, height - 200)

    def mouseDoubleClickEvent(self, cls):
        if not self.isFullScreen():
            # self.showFullScreen()
            self.fulls()
        else:
            self.unfull()
            # self.showNormal()

    def keyPressEvent(self, e):
        if e.key() == Qt.Key_Escape:
            if self.isFullScreen():
                self.unfull()
                # self.showNormal()

    def screen(self):
        if not self.isFullScreen():
            # self.showFullScreen()
            self.fulls()
        else:
            self.unfull()
            # self.showNormal()

    # forward media 5s
    def skipforw(self):
        self.videoplayer.setPosition(self.videoplayer.position() + 5000)

    def skipbac(self):
        self.videoplayer.setPosition(self.videoplayer.position() - 5000)

        # set increase rate

    def incRate(self):
        if self.videoplayer.playbackRate() == 0:
            x = self.videoplayer.playbackRate() + 1
        else:
            x = self.videoplayer.playbackRate()
        self.videoplayer.setPlaybackRate(x + 0.25)

    # set decrease rate
    def decRate(self):
        if self.videoplayer.playbackRate() == 0:
            x = self.videoplayer.playbackRate() + 1
        else:
            x = self.videoplayer.playbackRate()
        self.videoplayer.setPlaybackRate(x - 0.25)

    def addtolist(self):
        data = pd.read_excel("tags.xlsx")
        firstline = pd.DataFrame(data, index=[0])
        x = pd.DataFrame(data, columns=[list(firstline)[0]])
        self.listView.addItem(str(list(firstline)[1]))
        for i in range(x.size):
            self.listView.addItem(str(data.iat[i, 1]))

    def opensecond(self):
        login_page = LoginPage()
        login_page.setWindowFlags(QtCore.Qt.WindowCloseButtonHint)
        data = pd.read_excel("tags.xlsx")
        firstline = pd.DataFrame(data, index=[0])
        x = pd.DataFrame(data, columns=[list(firstline)[0]])
        login_page.tableWidget.setRowCount(x.size)
        login_page.tableWidget.insertRow(1)
        login_page.tableWidget.setItem(
            0, 0, QtWidgets.QTableWidgetItem(list(firstline)[0]))
        login_page.tableWidget.setItem(
            0, 1, QtWidgets.QTableWidgetItem(str(list(firstline)[1])))
        for i in range(x.size):
            for j in range(2):
                login_page.tableWidget.setItem(
                    i + 1, j, QtWidgets.QTableWidgetItem(str(data.iat[i, j])))
            # self.listView.addItem(str(data.iat[i, j]))
        login_page.buttonBox.accepted.connect(lambda: login_page.shows(self))
        login_page.tableWidget.setHorizontalHeaderLabels(["Tag", "Time"])
        login_page.exec_()

    def fulls(self):
        self.decreaseRate.hide()
        self.increaseRate.hide()
        self.centralwidget.setContentsMargins(0, 0, 0, 0)
        self.play.hide()  ################################################
        # self.stop.hide()  ################################################
        self.open.hide()  ################################################
        self.skipforward.hide(
        )  ################################################
        self.skipback.hide()  ################################################
        # self.horizontalSpacer_2.hide()
        # self.horizontalSpacer.hide()
        self.label.hide()  ################################################
        self.volume.hide()  ################################################
        self.menubar.hide(
        )  ################################################################
        self.sliderfilm.hide(
        )  ################################################
        self.statusBar.hide()
        self.showFullScreen()  ################################################
        self.listbtn.hide()
        self.listView.hide()

    def unfull(self):
        self.centralwidget.setContentsMargins(10, 10, 10, 10)
        self.decreaseRate.show()
        self.increaseRate.show()
        self.play.show()  ################################################
        # self.stop.show()  ################################################
        self.open.show()  ################################################
        self.skipforward.show(
        )  ################################################
        self.skipback.show()  ################################################
        # self.horizontalSpacer_2.hide()
        # self.horizontalSpacer.hide()
        self.label.show()  ################################################
        self.volume.show()  ################################################
        self.menubar.show(
        )  ################################################################
        self.sliderfilm.show(
        )  ################################################
        self.statusBar.show()
        self.showNormal()  ################################################
        self.listbtn.show()
        # self.listView.show()

    ##setting position of film
    def setpos(self, position):
        self.videoplayer.setPosition(position)

    def position(self, position):
        hour = int((position / 3600000) % 24)
        if hour < 10:
            hour = "0" + str(hour)
        minute = int((position / 60000) % 60)
        if minute < 10:
            minute = "0" + str(minute)
        second = int((position / 1000) % 60)
        if second < 10:
            second = "0" + str(second)
        self.label.setText(f"{hour}:{minute}:{second}")
        self.sliderfilm.setValue(position)

    def changed(self, duration):
        self.sliderfilm.setRange(0, duration)

    ##setting position of volume
    def setvolpos(self, position):
        self.videoplayer.setVolume(position)

    ##stop button
    # def stopp(self):
    #     self.stop.setEnabled(False)
    #     self.play.setText("Start")
    #     self.videoplayer.stop()
    #     self.videoplayer.setPosition(0)

    ##open button or open from menu bar
    def Loadvideo(self, videoplayer):
        self.a = 0
        filename, _ = QFileDialog.getOpenFileName(self, "Open Video")
        if filename != "":
            self.videoplayer.setPosition(0)
            types = (".mov" in filename) or (".png"
                                             in filename) or (".mp4"
                                                              in filename)
            if types:
                if filename != "":
                    self.videoplayer.setMedia(
                        QMediaContent(QUrl.fromLocalFile(filename)))
                    self.videoplayer.play()
                    self.play.setEnabled(True)
                    self.play.setIcon(self.style().standardIcon(
                        QStyle.SP_MediaPause))
                    self.increaseRate.setEnabled(True)
                    self.decreaseRate.setEnabled(True)

    ##play button
    def play_video(self):
        if self.videoplayer.state() == QMediaPlayer.PlayingState:
            self.play.setIcon(self.style().standardIcon(QStyle.SP_MediaPlay))
            self.videoplayer.pause()
        else:
            self.videoplayer.play()
            self.play.setIcon(self.style().standardIcon(QStyle.SP_MediaPause))

    def theme01(self):
        self.videowidget.setStyleSheet("background-color: #404040")
        self.setStyleSheet("background-color: #A0A0A0")

    def theme02(self):
        self.videowidget.setStyleSheet("background-color: #330019")
        self.setStyleSheet("background-color: #990000")

    def theme03(self):
        self.videowidget.setStyleSheet("background-color: #35557F")
        self.setStyleSheet("background-color: #003366")

    def theme04(self):
        self.videowidget.setStyleSheet("background-color: #00FF00")
        self.setStyleSheet("background-color: #4C9900")
Пример #11
0
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setAcceptDrops(True)

        self.videoPath = None
        self.videoTmpPath = None
        self.videoDuration = None
        self.videoEditor = None

        # Font
        # self.setFont(QFont("Noto Sans", 10))

        # Edit window
        self.editWindow = EditWidget(self)

        # Video widget and media player
        videoWidget = QVideoWidget()
        videoWidget.setStyleSheet('background: black')
        self.mediaPlayer = QMediaPlayer(None, QMediaPlayer.VideoSurface)
        self.mediaPlayer.setVideoOutput(videoWidget)
        self.mediaPlayer.stateChanged.connect(self.mediaStateChanged)
        self.mediaPlayer.positionChanged.connect(self.positionChanged)
        self.mediaPlayer.durationChanged.connect(self.durationChanged)
        self.mediaPlayer.error.connect(self.handleError)

        # Play button
        self.playButton = QPushButton()
        self.playButton.setEnabled(False)
        self.playButton.setFixedHeight(26)

        self.playButton.setIconSize(QSize(10, 10))
        self.playButton.setIcon(self.style().standardIcon(QStyle.SP_MediaPlay))
        self.playButton.clicked.connect(self.togglePlay)

        # Time slider
        self.positionSlider = QSliderMarker(Qt.Horizontal)

        # self.positionSlider.setRange(0, 0)
        self.positionSlider.sliderMoved.connect(self.setPosition)

        # Time label
        self.timeLabel = QLabel("- -:- -. - -")
        # self.timeLabel.setAlignment(Qt.AlignTop)
        self.timeLabel.setAlignment(Qt.AlignBottom)
        self.timeLabel.setFixedHeight(24)

        # Open button
        openButton = QPushButton("Open")
        openButton.setFixedHeight(24)
        openButton.clicked.connect(self.loadVideoFile)

        # Open Folder button
        self.openFolderButton = QPushButton("打开文件夹")
        self.openFolderButton.setEnabled(False)
        self.openFolderButton.setFixedHeight(24)
        self.openFolderButton.clicked.connect(self.openFolder)

        # Split button
        self.splitButton = QPushButton("分割")
        self.splitButton.setToolTip("对当前时间点的位置进行分割")
        self.splitButton.setEnabled(False)
        self.splitButton.setFixedHeight(24)
        self.splitButton.clicked.connect(self.split)

        # Export selected button
        # self.exportAllButton = QPushButton("Export selected splits")
        # self.exportAllButton.setToolTip("Join all selected splits in a single video file")
        # self.exportAllButton.setEnabled(False)
        # self.exportAllButton.setFixedHeight(24)
        # self.exportAllButton.clicked.connect(self.exportVideo)

        # Export Audio button
        self.exportAudioButton = QPushButton("提取音频MP3")
        self.exportAudioButton.setToolTip("提取整段视频文件的音频导出为MP3")
        self.exportAudioButton.setEnabled(False)
        self.exportAudioButton.setFixedHeight(24)
        self.exportAudioButton.clicked.connect(self.exportAuido)

        # Export JPG button
        self.exportJPGButton = QPushButton("当前画面截取JPG")
        self.exportJPGButton.setToolTip("将当前时间点的画面保存为")
        self.exportJPGButton.setEnabled(False)
        self.exportJPGButton.setFixedHeight(24)
        # print(self.mediaPlayer.position())
        self.exportJPGButton.clicked.connect(self.exportJPG)

        # Status bar
        self.statusBar = QStatusBar()
        self.statusBar.setFixedHeight(24)
        self.statusBar.showMessage("请直接将视频文件拖入窗口")

        # Controls layout [open, play and slider]
        # sliderLayout = QHBoxLayout()

        timeLayout = QHBoxLayout()
        timeLayout.setContentsMargins(0, 0, 0, 0)
        timeLayout.addWidget(self.playButton)
        timeLayout.addStretch(1)  # 增加伸缩量
        # timeLayout.addWidget(openButton)
        # timeLayout.addStretch(1)  # 增加伸缩量
        timeLayout.addWidget(self.timeLabel)

        # Controls layout [open, play and slider]
        controlLayout = QHBoxLayout()
        controlLayout.setContentsMargins(0, 0, 0, 0)
        controlLayout.addWidget(self.splitButton)
        controlLayout.addWidget(self.positionSlider)

        # Editor layout [split and export_all]
        editorLayout = QHBoxLayout()
        editorLayout.setContentsMargins(0, 0, 0, 0)
        editorLayout.addWidget(self.openFolderButton)
        editorLayout.addStretch(50)  # 增加伸缩量

        editorLayout.addWidget(self.exportJPGButton)
        editorLayout.addWidget(self.exportAudioButton)
        # editorLayout.addWidget(self.exportAllButton)

        editorLayout.addStretch(1)

        # Splits layout
        self.splitsLayout = QHBoxLayout()
        self.splitsLayout.setContentsMargins(0, 0, 0, 0)
        self.splitsLayout.setSpacing(0)

        # General layout
        layout = QVBoxLayout()
        layout.addWidget(videoWidget)
        layout.addLayout(timeLayout)
        layout.addLayout(controlLayout)

        layout.addLayout(self.splitsLayout)
        layout.addLayout(editorLayout)
        layout.addWidget(self.statusBar)
        self.setLayout(layout)
Пример #12
0
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(681, 491)
        icon = QtGui.QIcon()
        icon.addPixmap(
            QtGui.QPixmap("C:\\Users\\Скрипт\\Desktop\\Mplayer\\check.ico"),
            QtGui.QIcon.Normal, QtGui.QIcon.Off)
        MainWindow.setWindowIcon(icon)
        MainWindow.setIconSize(QtCore.QSize(256, 256))
        MainWindow.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
        MainWindow.setUnifiedTitleAndToolBarOnMac(False)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
        self.gridLayout.setContentsMargins(5, 5, -1, -1)
        self.gridLayout.setObjectName("gridLayout")
        self.verticalLayout = QtWidgets.QVBoxLayout()
        self.verticalLayout.setSizeConstraint(
            QtWidgets.QLayout.SetDefaultConstraint)
        self.verticalLayout.setSpacing(1)
        self.verticalLayout.setObjectName("verticalLayout")
        self.widget = QVideoWidget(self.centralwidget)
        self.widget.setStyleSheet("background-color: rgb(0, 0, 0);")
        self.widget.setObjectName("widget")
        self.verticalLayout.addWidget(self.widget)
        self.gridLayout.addLayout(self.verticalLayout, 0, 0, 1, 1)
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setSizeConstraint(
            QtWidgets.QLayout.SetNoConstraint)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.pushButton.sizePolicy().hasHeightForWidth())
        self.pushButton.setSizePolicy(sizePolicy)
        self.pushButton.setObjectName("pushButton")
        self.horizontalLayout.addWidget(self.pushButton)
        self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.pushButton_2.sizePolicy().hasHeightForWidth())
        self.pushButton_2.setSizePolicy(sizePolicy)
        self.pushButton_2.setText("")
        self.pushButton_2.setObjectName("pushButton_2")
        self.horizontalLayout.addWidget(self.pushButton_2)
        self.horizontalSlider = QtWidgets.QSlider(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.horizontalSlider.sizePolicy().hasHeightForWidth())
        self.horizontalSlider.setSizePolicy(sizePolicy)
        self.horizontalSlider.setMaximum(100)
        self.horizontalSlider.setProperty("value", 0)
        self.horizontalSlider.setSliderPosition(0)
        self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal)
        self.horizontalSlider.setObjectName("horizontalSlider")
        self.horizontalLayout.addWidget(self.horizontalSlider)
        self.label = QtWidgets.QLabel(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.label.sizePolicy().hasHeightForWidth())
        self.label.setSizePolicy(sizePolicy)
        self.label.setObjectName("label")
        self.horizontalLayout.addWidget(self.label)
        self.horizontalSlider_2 = QtWidgets.QSlider(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.horizontalSlider_2.sizePolicy().hasHeightForWidth())
        self.horizontalSlider_2.setSizePolicy(sizePolicy)
        self.horizontalSlider_2.setMaximum(100)
        self.horizontalSlider_2.setProperty("value", 50)
        self.horizontalSlider_2.setOrientation(QtCore.Qt.Horizontal)
        self.horizontalSlider_2.setObjectName("horizontalSlider_2")
        self.horizontalLayout.addWidget(self.horizontalSlider_2)
        self.gridLayout.addLayout(self.horizontalLayout, 1, 0, 1, 1)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 681, 21))
        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", "Cinema Player 1.01"))
        self.pushButton.setText(_translate("MainWindow", "Открыть"))
        self.label.setText(_translate("MainWindow", "Громкость"))
class Ui_playAnomalyVideo(object):
    def setupUi(self, playAnomalyVideo):
        playAnomalyVideo.setObjectName("playAnomalyVideo")
        playAnomalyVideo.resize(594, 543)
        playAnomalyVideo.setStyleSheet("*{\n"
                                       "font-family: century gothic;\n"
                                       "background: #2A2F3C ;\n"
                                       "}\n"
                                       "QLineEdit, QTextEdit{\n"
                                       "background-color:#1C1D25;\n"
                                       "border:#1C1D25;\n"
                                       "color:white;\n"
                                       "font-size:18px;\n"
                                       "}\n"
                                       "QLabel{\n"
                                       "color: white;\n"
                                       "font-size: 20px;\n"
                                       "\n"
                                       "}\n"
                                       "QPushButton, QToolButton{\n"
                                       "font-weight:bold;\n"
                                       "color:white ;\n"
                                       "background:#1C1D25;\n"
                                       "}\n"
                                       "QPushButton:hover{\n"
                                       "color:white;\n"
                                       "background-color:black;\n"
                                       "}\n"
                                       "")
        self.centralwidget = QtWidgets.QWidget(playAnomalyVideo)
        self.centralwidget.setObjectName("centralwidget")
        self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralwidget)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.verticalLayout_13 = QtWidgets.QVBoxLayout()
        self.verticalLayout_13.setObjectName("verticalLayout_13")
        self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_6.setObjectName("horizontalLayout_6")
        self.videoPathfield = QtWidgets.QLineEdit(self.centralwidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(31)
        sizePolicy.setHeightForWidth(
            self.videoPathfield.sizePolicy().hasHeightForWidth())
        self.videoPathfield.setSizePolicy(sizePolicy)
        self.videoPathfield.setMinimumSize(QtCore.QSize(320, 31))
        self.videoPathfield.setStyleSheet("QLineEdit{\n"
                                          "background-color:#1C1D25;\n"
                                          "border:#1C1D25;\n"
                                          "color:white;\n"
                                          "font-size:18px;\n"
                                          "}")
        self.videoPathfield.setObjectName("videoPathfield")
        self.horizontalLayout_6.addWidget(self.videoPathfield)
        self.videoPathEnter_pushButton = QtWidgets.QPushButton(
            self.centralwidget)
        self.videoPathEnter_pushButton.setObjectName(
            "videoPathEnter_pushButton")
        self.horizontalLayout_6.addWidget(self.videoPathEnter_pushButton)
        self.verticalLayout_13.addLayout(self.horizontalLayout_6)
        spacerItem = QtWidgets.QSpacerItem(10, 10,
                                           QtWidgets.QSizePolicy.Minimum,
                                           QtWidgets.QSizePolicy.Fixed)
        self.verticalLayout_13.addItem(spacerItem)
        self.anomalyVideoDisplay = QVideoWidget(self.centralwidget)
        self.anomalyVideoDisplay.setMinimumSize(QtCore.QSize(350, 400))
        self.anomalyVideoDisplay.setMaximumSize(
            QtCore.QSize(16777215, 16777215))
        self.anomalyVideoDisplay.setStyleSheet(
            "\n"
            "background-color: rgb(0, 0, 0);\n"
            "")
        self.anomalyVideoDisplay.setObjectName("anomalyVideoDisplay")
        self.verticalLayout_13.addWidget(self.anomalyVideoDisplay)
        spacerItem1 = QtWidgets.QSpacerItem(20, 10,
                                            QtWidgets.QSizePolicy.Minimum,
                                            QtWidgets.QSizePolicy.Fixed)
        self.verticalLayout_13.addItem(spacerItem1)
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.play_pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.play_pushButton.setText("")
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(":/menubar/play-24.png"),
                       QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.play_pushButton.setIcon(icon)
        self.play_pushButton.setObjectName("play_pushButton")
        self.horizontalLayout_4.addWidget(self.play_pushButton)
        self.pause_pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pause_pushButton.setText("")
        icon1 = QtGui.QIcon()
        icon1.addPixmap(QtGui.QPixmap(":/logo/media-pause-24.png"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.pause_pushButton.setIcon(icon1)
        self.pause_pushButton.setObjectName("pause_pushButton")
        self.horizontalLayout_4.addWidget(self.pause_pushButton)
        self.videoSlider = QtWidgets.QSlider(self.centralwidget)
        self.videoSlider.setOrientation(QtCore.Qt.Horizontal)
        self.videoSlider.setObjectName("videoSlider")
        self.horizontalLayout_4.addWidget(self.videoSlider)
        self.videoDurationChanged = QtWidgets.QLabel(self.centralwidget)
        self.videoDurationChanged.setObjectName("videoDurationChanged")
        self.horizontalLayout_4.addWidget(self.videoDurationChanged)
        self.verticalLayout_13.addLayout(self.horizontalLayout_4)
        spacerItem2 = QtWidgets.QSpacerItem(20, 40,
                                            QtWidgets.QSizePolicy.Minimum,
                                            QtWidgets.QSizePolicy.Expanding)
        self.verticalLayout_13.addItem(spacerItem2)
        self.horizontalLayout.addLayout(self.verticalLayout_13)
        playAnomalyVideo.setCentralWidget(self.centralwidget)

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

    def retranslateUi(self, playAnomalyVideo):
        _translate = QtCore.QCoreApplication.translate
        playAnomalyVideo.setWindowTitle(
            _translate("playAnomalyVideo", "MainWindow"))
        self.videoPathfield.setText(
            _translate("playAnomalyVideo", "Enter video path here"))
        self.videoPathEnter_pushButton.setText(
            _translate("playAnomalyVideo", "Enter"))
        self.videoDurationChanged.setText(
            _translate("playAnomalyVideo", "Duration"))
Пример #14
0
class Ui_Dialog(QWidget):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(975, 558)
        Dialog.setStyleSheet("background-color: rgb(0, 85, 255);\n"
                             "background-color: rgb(255, 170, 0);")
        self.checkBox = QtWidgets.QCheckBox(Dialog)
        self.checkBox.setGeometry(QtCore.QRect(10, 300, 81, 21))
        self.checkBox.setMinimumSize(QtCore.QSize(81, 0))
        self.checkBox.setMaximumSize(QtCore.QSize(81, 21))
        font = QtGui.QFont()
        font.setPointSize(8)
        self.checkBox.setFont(font)
        self.checkBox.setObjectName("checkBox")
        self.checkBox_2 = QtWidgets.QCheckBox(Dialog)
        self.checkBox_2.setGeometry(QtCore.QRect(10, 340, 81, 20))
        self.checkBox_2.setObjectName("checkBox_2")
        self.checkBox_3 = QtWidgets.QCheckBox(Dialog)
        self.checkBox_3.setGeometry(QtCore.QRect(10, 380, 81, 20))
        self.checkBox_3.setObjectName("checkBox_3")
        self.checkBox_4 = QtWidgets.QCheckBox(Dialog)
        self.checkBox_4.setGeometry(QtCore.QRect(10, 420, 81, 20))
        self.checkBox_4.setObjectName("checkBox_4")
        self.checkBox_5 = QtWidgets.QCheckBox(Dialog)
        self.checkBox_5.setGeometry(QtCore.QRect(10, 460, 81, 20))
        self.checkBox_5.setObjectName("checkBox_5")
        self.checkBox_6 = QtWidgets.QCheckBox(Dialog)
        self.checkBox_6.setGeometry(QtCore.QRect(10, 500, 81, 20))
        self.checkBox_6.setObjectName("checkBox_6")
        self.line_2 = QtWidgets.QFrame(Dialog)
        self.line_2.setGeometry(QtCore.QRect(0, 59, 981, 21))
        font = QtGui.QFont()
        font.setPointSize(7)
        font.setBold(False)
        font.setWeight(50)
        self.line_2.setFont(font)
        self.line_2.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_2.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_2.setObjectName("line_2")
        self.pushButton = QtWidgets.QPushButton(Dialog)
        self.pushButton.setGeometry(QtCore.QRect(120, 297, 93, 31))
        self.pushButton.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.pushButton.setObjectName("pushButton")
        self.pushButton_2 = QtWidgets.QPushButton(Dialog)
        self.pushButton_2.setGeometry(QtCore.QRect(120, 340, 93, 28))
        self.pushButton_2.setStyleSheet(
            "background-color: rgb(255, 255, 255);")
        self.pushButton_2.setObjectName("pushButton_2")
        self.pushButton_3 = QtWidgets.QPushButton(Dialog)
        self.pushButton_3.setGeometry(QtCore.QRect(120, 380, 93, 28))
        self.pushButton_3.setStyleSheet(
            "background-color: rgb(255, 255, 255);\n"
            "\n"
            "")
        self.pushButton_3.setObjectName("pushButton_3")
        self.pushButton_4 = QtWidgets.QPushButton(Dialog)
        self.pushButton_4.setGeometry(QtCore.QRect(120, 420, 93, 28))
        self.pushButton_4.setStyleSheet(
            "background-color: rgb(255, 255, 255);")
        self.pushButton_4.setObjectName("pushButton_4")
        self.pushButton_5 = QtWidgets.QPushButton(Dialog)
        self.pushButton_5.setGeometry(QtCore.QRect(120, 460, 93, 28))
        self.pushButton_5.setStyleSheet(
            "background-color: rgb(255, 255, 255);\n"
            "")
        self.pushButton_5.setObjectName("pushButton_5")
        self.pushButton_6 = QtWidgets.QPushButton(Dialog)
        self.pushButton_6.setGeometry(QtCore.QRect(120, 500, 93, 28))
        self.pushButton_6.setStyleSheet(
            "background-color: rgb(255, 255, 255);")
        self.pushButton_6.setObjectName("pushButton_6")
        self.line = QtWidgets.QFrame(Dialog)
        self.line.setGeometry(QtCore.QRect(213, 70, 20, 501))
        font = QtGui.QFont()
        font.setPointSize(7)
        font.setBold(False)
        font.setWeight(50)
        self.line.setFont(font)
        self.line.setFrameShape(QtWidgets.QFrame.VLine)
        self.line.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line.setObjectName("line")
        self.pushButton_7 = QtWidgets.QPushButton(Dialog)
        self.pushButton_7.setGeometry(QtCore.QRect(10, 100, 201, 28))
        self.pushButton_7.setStyleSheet(
            "background-color: qradialgradient(spread:repeat, cx:0.5, cy:0.5, radius:0.077, fx:0.5, fy:0.5, stop:0 rgba(0, 169, 255, 147), stop:0.497326 rgba(0, 0, 0, 147), stop:1 rgba(0, 169, 255, 147));\n"
            "background-color: rgb(255, 255, 255);")
        self.pushButton_7.setObjectName("pushButton_7")
        self.pushButton_7.clicked.connect(self.open_file)
        self.pushButton_8 = QtWidgets.QPushButton(Dialog)
        self.pushButton_8.setGeometry(QtCore.QRect(10, 160, 201, 28))
        self.pushButton_8.setStyleSheet(
            "background-color: rgb(255, 255, 255);")
        self.pushButton_8.setObjectName("pushButton_8")
        self.line_3 = QtWidgets.QFrame(Dialog)
        self.line_3.setGeometry(QtCore.QRect(230, 510, 741, 16))
        self.line_3.setFrameShape(QtWidgets.QFrame.HLine)
        self.line_3.setFrameShadow(QtWidgets.QFrame.Sunken)
        self.line_3.setObjectName("line_3")
        self.pushButton_9 = QtWidgets.QPushButton(Dialog)
        self.pushButton_9.setGeometry(QtCore.QRect(450, 520, 131, 28))
        self.pushButton_9.setStyleSheet(
            "background-color: rgb(255, 255, 255);")
        self.pushButton_9.setObjectName("pushButton_9")
        self.pushButton_9.clicked.connect(self.play_video)
        self.pushButton_10 = QtWidgets.QPushButton(Dialog)
        self.pushButton_10.setGeometry(QtCore.QRect(730, 520, 93, 28))
        self.pushButton_10.setStyleSheet(
            "background-color: rgb(255, 255, 255);\n"
            "border-color: rgb(0, 0, 0);")
        self.pushButton_10.setObjectName("pushButton_10")
        self.label = QtWidgets.QLabel(Dialog)
        self.label.setGeometry(QtCore.QRect(470, 20, 141, 31))
        font = QtGui.QFont()
        font.setFamily("MS Sans Serif")
        font.setPointSize(17)
        font.setBold(True)
        font.setItalic(True)
        font.setWeight(75)
        self.label.setFont(font)
        self.label.setObjectName("label")
        self.frame = QtWidgets.QFrame(Dialog)
        self.mediaPlayer = QMediaPlayer(None, QMediaPlayer.VideoSurface)
        self.frame.setGeometry(QtCore.QRect(260, 90, 151, 101))
        self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame.setObjectName("frame")
        self.video1 = QVideoWidget(self.frame)
        self.video1.setGeometry(QtCore.QRect(0, 0, 121, 101))
        self.video1.setStyleSheet("background-color: rgb(0, 0, 0);")
        self.video1.setObjectName("video1")
        self.pushButton_7.raise_()
        self.checkBox.raise_()
        self.checkBox_2.raise_()
        self.checkBox_3.raise_()
        self.checkBox_4.raise_()
        self.checkBox_5.raise_()
        self.checkBox_6.raise_()
        self.line_2.raise_()
        self.pushButton.raise_()
        self.pushButton_2.raise_()
        self.pushButton_3.raise_()
        self.pushButton_4.raise_()
        self.pushButton_5.raise_()
        self.pushButton_6.raise_()
        self.line.raise_()
        self.pushButton_8.raise_()
        self.line_3.raise_()
        self.pushButton_9.raise_()
        self.pushButton_10.raise_()
        self.label.raise_()
        self.frame.raise_()
        self.mediaPlayer.setVideoOutput(self.video1)

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

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
        self.checkBox.setText(_translate("Dialog", "method 1"))
        self.checkBox_2.setText(_translate("Dialog", "method 2"))
        self.checkBox_3.setText(_translate("Dialog", "method 3"))
        self.checkBox_4.setText(_translate("Dialog", "method 4"))
        self.checkBox_5.setText(_translate("Dialog", "method 5"))
        self.checkBox_6.setText(_translate("Dialog", "method 6"))
        self.pushButton.setText(_translate("Dialog", "DEMO"))
        self.pushButton_2.setText(_translate("Dialog", "DEMO"))
        self.pushButton_3.setText(_translate("Dialog", "DEMO"))
        self.pushButton_4.setText(_translate("Dialog", "DEMO"))
        self.pushButton_5.setText(_translate("Dialog", "DEMO"))
        self.pushButton_6.setText(_translate("Dialog", "DEMO"))
        self.pushButton_7.setText(_translate("Dialog", "Browse Input Video"))
        self.pushButton_8.setText(
            _translate("Dialog", "Browse ground frame image"))
        self.pushButton_9.setText(_translate("Dialog", "Play selected video"))
        self.pushButton_10.setText(_translate("Dialog", "Close"))
        self.label.setText(_translate("Dialog", "VIDEO"))
        self.mediaPlayer.setVideoOutput(self.video1)
        self.mediaPlayer.stateChanged.connect(self.mediastate_changed)
        # self.mediaPlayer.positionChanged.connect(self.position_changed)
        # self.mediaPlayer.durationChanged.connect(self.duration_changed)

    def open_file(self):
        filename, _ = QFileDialog.getOpenFileName(self, "Open Video")

        if filename != '':
            self.mediaPlayer.setMedia(
                QMediaContent(QUrl.fromLocalFile(filename)))
            self.pushButton_9.setEnabled(True)

    def play_video(self):
        if self.mediaPlayer.state() == QMediaPlayer.PlayingState:
            self.mediaPlayer.pause()

        else:
            self.mediaPlayer.play()

    def mediastate_changed(self, state):
        if self.mediaPlayer.state() == QMediaPlayer.PlayingState:
            self.pushButton_9.setIcon(self.style().standardIcon(
                QStyle.SP_MediaPause))

        else:
            self.pushButton_9.setIcon(self.style().standardIcon(
                QStyle.SP_MediaPlay))

        def handle_errors(self):
            self.pushButton_9.setEnabled(False)
            self.label.setText("Error: " + self.mediaPlayer.errorString())
Пример #15
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"))
Пример #16
0
class Ui_VideoAnnoWidget(object):
    def setupUi(self, VideoAnnoWidget):
        VideoAnnoWidget.setObjectName("VideoAnnoWidget")
        VideoAnnoWidget.resize(1168, 750)
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout(VideoAnnoWidget)
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        self.verticalLayout = QtWidgets.QVBoxLayout()
        self.verticalLayout.setContentsMargins(4, 8, 8, 4)
        self.verticalLayout.setObjectName("verticalLayout")
        self.videoWidget = QVideoWidget(VideoAnnoWidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.videoWidget.sizePolicy().hasHeightForWidth())
        self.videoWidget.setSizePolicy(sizePolicy)
        self.videoWidget.setStyleSheet("background-color: rgb(0, 0, 0);")
        self.videoWidget.setObjectName("videoWidget")
        self.verticalLayout.addWidget(self.videoWidget)
        self.segmentColorBar = SegmentColorBar(VideoAnnoWidget)
        self.segmentColorBar.setMaximumSize(QtCore.QSize(16777215, 12))
        self.segmentColorBar.setText("")
        self.segmentColorBar.setObjectName("segmentColorBar")
        self.verticalLayout.addWidget(self.segmentColorBar)
        self.positionSlider = QtWidgets.QSlider(VideoAnnoWidget)
        self.positionSlider.setOrientation(QtCore.Qt.Horizontal)
        self.positionSlider.setObjectName("positionSlider")
        self.verticalLayout.addWidget(self.positionSlider)
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setSizeConstraint(QtWidgets.QLayout.SetMinimumSize)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.playButton = QtWidgets.QPushButton(VideoAnnoWidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.playButton.sizePolicy().hasHeightForWidth())
        self.playButton.setSizePolicy(sizePolicy)
        self.playButton.setMinimumSize(QtCore.QSize(30, 30))
        self.playButton.setMaximumSize(QtCore.QSize(30, 30))
        self.playButton.setBaseSize(QtCore.QSize(30, 30))
        self.playButton.setText("")
        self.playButton.setObjectName("playButton")
        self.horizontalLayout_2.addWidget(self.playButton)
        self.stepBackwardButton = QtWidgets.QPushButton(VideoAnnoWidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.stepBackwardButton.sizePolicy().hasHeightForWidth())
        self.stepBackwardButton.setSizePolicy(sizePolicy)
        self.stepBackwardButton.setMinimumSize(QtCore.QSize(30, 30))
        self.stepBackwardButton.setMaximumSize(QtCore.QSize(30, 30))
        self.stepBackwardButton.setText("")
        self.stepBackwardButton.setObjectName("stepBackwardButton")
        self.horizontalLayout_2.addWidget(self.stepBackwardButton)
        self.stepForwardButton = QtWidgets.QPushButton(VideoAnnoWidget)
        self.stepForwardButton.setMinimumSize(QtCore.QSize(30, 30))
        self.stepForwardButton.setMaximumSize(QtCore.QSize(30, 30))
        self.stepForwardButton.setText("")
        self.stepForwardButton.setObjectName("stepForwardButton")
        self.horizontalLayout_2.addWidget(self.stepForwardButton)
        self.curTimeLabel = QtWidgets.QLabel(VideoAnnoWidget)
        self.curTimeLabel.setObjectName("curTimeLabel")
        self.horizontalLayout_2.addWidget(self.curTimeLabel)
        spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_2.addItem(spacerItem)
        self.label = QtWidgets.QLabel(VideoAnnoWidget)
        self.label.setObjectName("label")
        self.horizontalLayout_2.addWidget(self.label)
        self.stepSpinBox = QtWidgets.QSpinBox(VideoAnnoWidget)
        self.stepSpinBox.setMinimumSize(QtCore.QSize(100, 30))
        self.stepSpinBox.setMaximumSize(QtCore.QSize(100, 30))
        self.stepSpinBox.setMinimum(50)
        self.stepSpinBox.setMaximum(999999999)
        self.stepSpinBox.setObjectName("stepSpinBox")
        self.horizontalLayout_2.addWidget(self.stepSpinBox)
        self.verticalLayout.addLayout(self.horizontalLayout_2)
        self.verticalLayout.setStretch(0, 1)
        self.horizontalLayout_3.addLayout(self.verticalLayout)
        self.verticalLayout_4 = QtWidgets.QVBoxLayout()
        self.verticalLayout_4.setObjectName("verticalLayout_4")
        self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_4.setObjectName("horizontalLayout_4")
        self.label_3 = QtWidgets.QLabel(VideoAnnoWidget)
        self.label_3.setObjectName("label_3")
        self.horizontalLayout_4.addWidget(self.label_3)
        self.labelLineEdit = QtWidgets.QLineEdit(VideoAnnoWidget)
        self.labelLineEdit.setObjectName("labelLineEdit")
        self.horizontalLayout_4.addWidget(self.labelLineEdit)
        self.verticalLayout_4.addLayout(self.horizontalLayout_4)
        self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_6.setObjectName("horizontalLayout_6")
        self.verticalLayout_5 = QtWidgets.QVBoxLayout()
        self.verticalLayout_5.setObjectName("verticalLayout_5")
        self.label_5 = QtWidgets.QLabel(VideoAnnoWidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.label_5.sizePolicy().hasHeightForWidth())
        self.label_5.setSizePolicy(sizePolicy)
        self.label_5.setMaximumSize(QtCore.QSize(16777215, 20))
        self.label_5.setObjectName("label_5")
        self.verticalLayout_5.addWidget(self.label_5)
        self.startTimeLabel = QtWidgets.QLabel(VideoAnnoWidget)
        self.startTimeLabel.setStyleSheet("background-color: rgb(195, 195, 195);")
        self.startTimeLabel.setObjectName("startTimeLabel")
        self.verticalLayout_5.addWidget(self.startTimeLabel)
        self.getStartTimeButton = QtWidgets.QPushButton(VideoAnnoWidget)
        self.getStartTimeButton.setMinimumSize(QtCore.QSize(0, 30))
        self.getStartTimeButton.setMaximumSize(QtCore.QSize(16777215, 30))
        self.getStartTimeButton.setObjectName("getStartTimeButton")
        self.verticalLayout_5.addWidget(self.getStartTimeButton)
        self.horizontalLayout_6.addLayout(self.verticalLayout_5)
        self.verticalLayout_3 = QtWidgets.QVBoxLayout()
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.label_2 = QtWidgets.QLabel(VideoAnnoWidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Minimum)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.label_2.sizePolicy().hasHeightForWidth())
        self.label_2.setSizePolicy(sizePolicy)
        self.label_2.setMaximumSize(QtCore.QSize(16777215, 20))
        self.label_2.setObjectName("label_2")
        self.verticalLayout_3.addWidget(self.label_2)
        self.endTimeLabel = QtWidgets.QLabel(VideoAnnoWidget)
        self.endTimeLabel.setStyleSheet("background-color: rgb(195, 195, 195);")
        self.endTimeLabel.setObjectName("endTimeLabel")
        self.verticalLayout_3.addWidget(self.endTimeLabel)
        self.getEndTimeButton = QtWidgets.QPushButton(VideoAnnoWidget)
        self.getEndTimeButton.setMinimumSize(QtCore.QSize(0, 30))
        self.getEndTimeButton.setMaximumSize(QtCore.QSize(16777215, 30))
        self.getEndTimeButton.setObjectName("getEndTimeButton")
        self.verticalLayout_3.addWidget(self.getEndTimeButton)
        self.horizontalLayout_6.addLayout(self.verticalLayout_3)
        self.verticalLayout_4.addLayout(self.horizontalLayout_6)
        self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_5.setObjectName("horizontalLayout_5")
        self.label_4 = QtWidgets.QLabel(VideoAnnoWidget)
        self.label_4.setObjectName("label_4")
        self.horizontalLayout_5.addWidget(self.label_4)
        self.addSegmentButton = QtWidgets.QPushButton(VideoAnnoWidget)
        self.addSegmentButton.setMinimumSize(QtCore.QSize(30, 30))
        self.addSegmentButton.setMaximumSize(QtCore.QSize(30, 30))
        self.addSegmentButton.setText("")
        self.addSegmentButton.setObjectName("addSegmentButton")
        self.horizontalLayout_5.addWidget(self.addSegmentButton)
        self.delSegmentButton = QtWidgets.QPushButton(VideoAnnoWidget)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.delSegmentButton.sizePolicy().hasHeightForWidth())
        self.delSegmentButton.setSizePolicy(sizePolicy)
        self.delSegmentButton.setMinimumSize(QtCore.QSize(30, 30))
        self.delSegmentButton.setMaximumSize(QtCore.QSize(30, 30))
        self.delSegmentButton.setText("")
        self.delSegmentButton.setObjectName("delSegmentButton")
        self.horizontalLayout_5.addWidget(self.delSegmentButton)
        self.verticalLayout_4.addLayout(self.horizontalLayout_5)
        self.segmentListWidget = QtWidgets.QListWidget(VideoAnnoWidget)
        self.segmentListWidget.setObjectName("segmentListWidget")
        self.verticalLayout_4.addWidget(self.segmentListWidget)
        self.verticalLayout_4.setStretch(3, 1)
        self.horizontalLayout_3.addLayout(self.verticalLayout_4)
        self.horizontalLayout_3.setStretch(0, 1)

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

    def retranslateUi(self, VideoAnnoWidget):
        _translate = QtCore.QCoreApplication.translate
        VideoAnnoWidget.setWindowTitle(_translate("VideoAnnoWidget", "Form"))
        self.playButton.setToolTip(_translate("VideoAnnoWidget", "Play / Pause Video"))
        self.stepBackwardButton.setToolTip(_translate("VideoAnnoWidget", "Video Step Backward"))
        self.stepForwardButton.setToolTip(_translate("VideoAnnoWidget", "Video Step Forward"))
        self.curTimeLabel.setText(_translate("VideoAnnoWidget", "00:00:00"))
        self.label.setText(_translate("VideoAnnoWidget", "Step Size"))
        self.stepSpinBox.setSuffix(_translate("VideoAnnoWidget", " ms"))
        self.label_3.setText(_translate("VideoAnnoWidget", "Label"))
        self.label_5.setText(_translate("VideoAnnoWidget", "Segment Start"))
        self.startTimeLabel.setText(_translate("VideoAnnoWidget", "00:00:00"))
        self.getStartTimeButton.setToolTip(_translate("VideoAnnoWidget", "Grab Segment Start Time"))
        self.getStartTimeButton.setText(_translate("VideoAnnoWidget", "Grab Time"))
        self.label_2.setText(_translate("VideoAnnoWidget", "Segment End"))
        self.endTimeLabel.setText(_translate("VideoAnnoWidget", "00:00:00"))
        self.getEndTimeButton.setToolTip(_translate("VideoAnnoWidget", "Grab Segment End Time"))
        self.getEndTimeButton.setText(_translate("VideoAnnoWidget", "Grab Time"))
        self.label_4.setText(_translate("VideoAnnoWidget", "Segments"))
        self.addSegmentButton.setToolTip(_translate("VideoAnnoWidget", "Add New Segment"))
        self.delSegmentButton.setToolTip(_translate("VideoAnnoWidget", "Delete Selected Segment"))
Пример #17
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'))
Пример #18
0
class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(706, 493)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(":/plugins/Video_UAV_Tracker/icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        Form.setWindowIcon(icon)
        self.verticalLayout_3 = QtWidgets.QVBoxLayout(Form)
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.pushButton_3 = QtWidgets.QPushButton(Form)
        font = QtGui.QFont()
        font.setKerning(True)
        self.pushButton_3.setFont(font)
        icon1 = QtGui.QIcon()
        icon1.addPixmap(QtGui.QPixmap(":/VgisIcon/Hand-icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.On)
        self.pushButton_3.setIcon(icon1)
        self.pushButton_3.setAutoExclusive(False)
        self.pushButton_3.setAutoDefault(False)
        self.pushButton_3.setDefault(False)
        self.pushButton_3.setFlat(False)
        self.pushButton_3.setObjectName("pushButton_3")
        self.horizontalLayout.addWidget(self.pushButton_3)
        self.toolButton_6 = QtWidgets.QToolButton(Form)
        icon2 = QtGui.QIcon()
        icon2.addPixmap(QtGui.QPixmap(":/plugins/Video_UAV_Tracker/iconNewTabEditorConsole.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.toolButton_6.setIcon(icon2)
        self.toolButton_6.setObjectName("toolButton_6")
        self.horizontalLayout.addWidget(self.toolButton_6)
        spacerItem = QtWidgets.QSpacerItem(23, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem)
        self.toolButton_4 = QtWidgets.QToolButton(Form)
        self.toolButton_4.setStyleSheet("background: url(/mnt/574916AB2EEEC400/LAVORO/Sviluppo_VUT_StandAlone/Progetto_VUT/115757-magic-marker-icon-people-things-hand22-sc48.png)")
        self.toolButton_4.setObjectName("toolButton_4")
        self.horizontalLayout.addWidget(self.toolButton_4)
        self.toolButton_5 = QtWidgets.QToolButton(Form)
        self.toolButton_5.setObjectName("toolButton_5")
        self.horizontalLayout.addWidget(self.toolButton_5)
        self.verticalLayout_3.addLayout(self.horizontalLayout)
        self.dockWidget_2 = QtWidgets.QDockWidget(Form)
        self.dockWidget_2.setFeatures(QtWidgets.QDockWidget.NoDockWidgetFeatures)
        self.dockWidget_2.setAllowedAreas(QtCore.Qt.LeftDockWidgetArea|QtCore.Qt.RightDockWidgetArea)
        self.dockWidget_2.setObjectName("dockWidget_2")
        self.dockWidgetContents_7 = QtWidgets.QWidget()
        self.dockWidgetContents_7.setObjectName("dockWidgetContents_7")
        self.gridLayout_2 = QtWidgets.QGridLayout(self.dockWidgetContents_7)
        self.gridLayout_2.setObjectName("gridLayout_2")
        self.verticalLayout = QtWidgets.QVBoxLayout()
        self.verticalLayout.setObjectName("verticalLayout")
        self.video_frame = QVideoWidget(Form)
        p = self.video_frame.palette()
        p.setColor(QtGui.QPalette.Window, QtCore.Qt.black)
        self.video_frame.setPalette(p)
        self.video_frame.setAttribute(QtCore.Qt.WA_OpaquePaintEvent)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(self.video_frame.sizePolicy().hasHeightForWidth())
        self.video_frame.setSizePolicy(sizePolicy)
        self.video_frame.setMinimumSize(QtCore.QSize(200, 200))
        self.video_frame.setStyleSheet("background-color: rgb(0, 0, 0);")
        self.video_frame.setObjectName("video_frame")
        self.verticalLayout.addWidget(self.video_frame)
        self.horizontalSlider = QtWidgets.QSlider(self.dockWidgetContents_7)
        self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal)
        self.horizontalSlider.setObjectName("horizontalSlider")
        self.verticalLayout.addWidget(self.horizontalSlider)
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        spacerItem1 = QtWidgets.QSpacerItem(98, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_3.addItem(spacerItem1)
        self.toolButton_11 = QtWidgets.QToolButton(self.dockWidgetContents_7)
        icon3 = QtGui.QIcon()
        icon3.addPixmap(QtGui.QPixmap(":/VgisIcon/mActionArrowLeft.svg"), QtGui.QIcon.Normal, QtGui.QIcon.On)
        self.toolButton_11.setIcon(icon3)
        self.toolButton_11.setObjectName("toolButton_11")
        self.horizontalLayout_3.addWidget(self.toolButton_11)
        self.SkipBacktoolButton_8 = QtWidgets.QToolButton(self.dockWidgetContents_7)
        self.SkipBacktoolButton_8.setStyleSheet("")
        icon4 = QtGui.QIcon()
        icon4.addPixmap(QtGui.QPixmap(":/VgisIcon/mActionAtlasPrev.svg"), QtGui.QIcon.Normal, QtGui.QIcon.On)
        self.SkipBacktoolButton_8.setIcon(icon4)
        self.SkipBacktoolButton_8.setObjectName("SkipBacktoolButton_8")
        self.horizontalLayout_3.addWidget(self.SkipBacktoolButton_8)
        self.playButton = QtWidgets.QToolButton(self.dockWidgetContents_7)
        self.playButton.setObjectName("playButton")
        self.horizontalLayout_3.addWidget(self.playButton)
        self.muteButton = QtWidgets.QToolButton(self.dockWidgetContents_7)
        self.muteButton.setText("")
        self.muteButton.setObjectName("muteButton")
        self.horizontalLayout_3.addWidget(self.muteButton)
        self.replayPosition_label = QtWidgets.QLabel(self.dockWidgetContents_7)
        self.replayPosition_label.setObjectName("replayPosition_label")
        self.horizontalLayout_3.addWidget(self.replayPosition_label)
        self.SkipFortoolButton_9 = QtWidgets.QToolButton(self.dockWidgetContents_7)
        self.SkipFortoolButton_9.setStyleSheet("")
        icon5 = QtGui.QIcon()
        icon5.addPixmap(QtGui.QPixmap(":/VgisIcon/mActionAtlasNext.svg"), QtGui.QIcon.Normal, QtGui.QIcon.On)
        self.SkipFortoolButton_9.setIcon(icon5)
        self.SkipFortoolButton_9.setObjectName("SkipFortoolButton_9")
        self.horizontalLayout_3.addWidget(self.SkipFortoolButton_9)
        self.toolButton_12 = QtWidgets.QToolButton(self.dockWidgetContents_7)
        icon6 = QtGui.QIcon()
        icon6.addPixmap(QtGui.QPixmap(":/VgisIcon/mActionArrowRight.svg"), QtGui.QIcon.Normal, QtGui.QIcon.On)
        self.toolButton_12.setIcon(icon6)
        self.toolButton_12.setObjectName("toolButton_12")
        self.horizontalLayout_3.addWidget(self.toolButton_12)
        spacerItem2 = QtWidgets.QSpacerItem(98, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_3.addItem(spacerItem2)
        self.verticalLayout.addLayout(self.horizontalLayout_3)
        self.gridLayout_2.addLayout(self.verticalLayout, 0, 0, 1, 1)
        self.dockWidget_2.setWidget(self.dockWidgetContents_7)
        self.verticalLayout_3.addWidget(self.dockWidget_2)
        self.dockWidget_4 = QtWidgets.QDockWidget(Form)
        self.dockWidget_4.setMaximumSize(QtCore.QSize(524287, 121))
        self.dockWidget_4.setFeatures(QtWidgets.QDockWidget.NoDockWidgetFeatures)
        self.dockWidget_4.setAllowedAreas(QtCore.Qt.BottomDockWidgetArea)
        self.dockWidget_4.setObjectName("dockWidget_4")
        self.dockWidgetContents_6 = QtWidgets.QWidget()
        self.dockWidgetContents_6.setObjectName("dockWidgetContents_6")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.dockWidgetContents_6)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.label = QtWidgets.QLabel(self.dockWidgetContents_6)
        self.label.setObjectName("label")
        self.verticalLayout_2.addWidget(self.label)
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setSizeConstraint(QtWidgets.QLayout.SetFixedSize)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.pushButtonCutA_6 = QtWidgets.QPushButton(self.dockWidgetContents_6)
        self.pushButtonCutA_6.setEnabled(True)
        self.pushButtonCutA_6.setObjectName("pushButtonCutA_6")
        self.horizontalLayout_2.addWidget(self.pushButtonCutA_6)
        self.pushButtonCutB_6 = QtWidgets.QPushButton(self.dockWidgetContents_6)
        self.pushButtonCutB_6.setObjectName("pushButtonCutB_6")
        self.horizontalLayout_2.addWidget(self.pushButtonCutB_6)
        self.label_7 = QtWidgets.QLabel(self.dockWidgetContents_6)
        self.label_7.setObjectName("label_7")
        self.horizontalLayout_2.addWidget(self.label_7)
        self.doubleSpinBox_2 = QtWidgets.QDoubleSpinBox(self.dockWidgetContents_6)
        self.doubleSpinBox_2.setObjectName("doubleSpinBox_2")
        self.horizontalLayout_2.addWidget(self.doubleSpinBox_2)
        self.comboBox_6 = QtWidgets.QComboBox(self.dockWidgetContents_6)
        self.comboBox_6.setObjectName("comboBox_6")
        self.comboBox_6.addItem("")
        self.comboBox_6.addItem("")
        self.horizontalLayout_2.addWidget(self.comboBox_6)
        self.pushButton_5 = QtWidgets.QPushButton(self.dockWidgetContents_6)
        self.pushButton_5.setObjectName("pushButton_5")
        self.horizontalLayout_2.addWidget(self.pushButton_5)
        self.pushButtonCut_2 = QtWidgets.QPushButton(self.dockWidgetContents_6)
        self.pushButtonCut_2.setObjectName("pushButtonCut_2")
        self.horizontalLayout_2.addWidget(self.pushButtonCut_2)
        self.verticalLayout_2.addLayout(self.horizontalLayout_2)
        self.progressBar = QtWidgets.QProgressBar(self.dockWidgetContents_6)
        self.progressBar.setProperty("value", 24)
        self.progressBar.setObjectName("progressBar")
        self.verticalLayout_2.addWidget(self.progressBar)
        self.dockWidget_4.setWidget(self.dockWidgetContents_6)
        self.verticalLayout_3.addWidget(self.dockWidget_4)

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

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Video UAV Tracker - Player"))
        self.pushButton_3.setToolTip(_translate("Form", "<html><head/><body><p>Move along Video directly clicking on gps track</p></body></html>"))
        self.pushButton_3.setText(_translate("Form", "MapTool   "))
        self.toolButton_6.setToolTip(_translate("Form", "<html><head/><body><p>Add point</p></body></html>"))
        self.toolButton_6.setText(_translate("Form", "o"))
        self.toolButton_4.setToolTip(_translate("Form", "<html><head/><body><p>Enable extract frames toolbox</p><p><br/></p></body></html>"))
        self.toolButton_4.setText(_translate("Form", "Extract frames"))
        self.toolButton_5.setText(_translate("Form", "Close"))
        self.toolButton_11.setText(_translate("Form", "<<"))
        self.SkipBacktoolButton_8.setText(_translate("Form", "<"))
        self.playButton.setText(_translate("Form", "> / ||"))
        self.replayPosition_label.setText(_translate("Form", "-:- / -:-"))
        self.SkipFortoolButton_9.setText(_translate("Form", ">"))
        self.toolButton_12.setText(_translate("Form", ">>"))
        self.label.setText(_translate("Form", "Export Frames Tool"))
        self.pushButtonCutA_6.setToolTip(_translate("Form", "<html><head/><body><p>Export from actual Video Frame</p></body></html>"))
        self.pushButtonCutA_6.setText(_translate("Form", "From A"))
        self.pushButtonCutB_6.setToolTip(_translate("Form", "<html><head/><body><p>Export to actual Video Frame</p></body></html>"))
        self.pushButtonCutB_6.setText(_translate("Form", "To B"))
        self.label_7.setText(_translate("Form", "Pick one frame every"))
        self.comboBox_6.setItemText(0, _translate("Form", "meters"))
        self.comboBox_6.setItemText(1, _translate("Form", "seconds"))
        self.pushButton_5.setText(_translate("Form", "Cancel"))
        self.pushButtonCut_2.setText(_translate("Form", "Extract!"))
Пример #19
0
class Ui_NewProject(object):
    def setupUi(self, NewProject):
        NewProject.setObjectName("NewProject")
        NewProject.resize(736, 625)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(":/plugins/VideoGis/icon.png"),
                       QtGui.QIcon.Normal, QtGui.QIcon.Off)
        NewProject.setWindowIcon(icon)
        self.gridLayout_2 = QtWidgets.QGridLayout(NewProject)
        self.gridLayout_2.setObjectName("gridLayout_2")
        self.gridLayout = QtWidgets.QGridLayout()
        self.gridLayout.setObjectName("gridLayout")
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.video_frame_2 = QVideoWidget(NewProject)
        p = self.video_frame_2.palette()
        p.setColor(QtGui.QPalette.Window, QtCore.Qt.black)
        self.video_frame_2.setPalette(p)
        self.video_frame_2.setAttribute(QtCore.Qt.WA_OpaquePaintEvent)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.video_frame_2.sizePolicy().hasHeightForWidth())
        self.video_frame_2.setSizePolicy(sizePolicy)
        self.video_frame_2.setStyleSheet("background-color: rgb(0, 0, 0);")
        self.video_frame_2.setObjectName("video_frame_2")
        self.horizontalLayout.addWidget(self.video_frame_2)
        self.gridLayout.addLayout(self.horizontalLayout, 0, 0, 1, 16)
        self.horizontalSlider = QtWidgets.QSlider(NewProject)
        self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal)
        self.horizontalSlider.setObjectName("horizontalSlider")
        self.gridLayout.addWidget(self.horizontalSlider, 1, 0, 1, 16)
        self.replayPlay_pushButton = QtWidgets.QPushButton(NewProject)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.replayPlay_pushButton.sizePolicy().hasHeightForWidth())
        self.replayPlay_pushButton.setSizePolicy(sizePolicy)
        self.replayPlay_pushButton.setCheckable(False)
        self.replayPlay_pushButton.setChecked(False)
        self.replayPlay_pushButton.setObjectName("replayPlay_pushButton")
        self.gridLayout.addWidget(self.replayPlay_pushButton, 3, 1, 1, 1)
        self.replayPosition_label = QtWidgets.QLabel(NewProject)
        self.replayPosition_label.setObjectName("replayPosition_label")
        self.gridLayout.addWidget(self.replayPosition_label, 3, 4, 1, 1)
        self.muteButton = QtWidgets.QToolButton(NewProject)
        self.muteButton.setText("")
        self.muteButton.setObjectName("muteButton")
        self.gridLayout.addWidget(self.muteButton, 3, 2, 1, 1)
        self.comboBox = QtWidgets.QComboBox(NewProject)
        self.comboBox.setObjectName("comboBox")
        self.gridLayout.addWidget(self.comboBox, 3, 15, 1, 1)
        self.pushButton_2 = QtWidgets.QPushButton(NewProject)
        self.pushButton_2.setObjectName("pushButton_2")
        self.gridLayout.addWidget(self.pushButton_2, 3, 13, 1, 1)
        self.toolButton_3 = QtWidgets.QToolButton(NewProject)
        icon1 = QtGui.QIcon()
        icon1.addPixmap(
            QtGui.QPixmap(":/plugins/VideoGis/mIconFormSelect.svg"),
            QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.toolButton_3.setIcon(icon1)
        self.toolButton_3.setObjectName("toolButton_3")
        self.gridLayout.addWidget(self.toolButton_3, 3, 11, 1, 1)
        self.toolButton_2 = QtWidgets.QToolButton(NewProject)
        icon2 = QtGui.QIcon()
        icon2.addPixmap(QtGui.QPixmap(":/VgisIcon/mActionAtlasNext.svg"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.toolButton_2.setIcon(icon2)
        self.toolButton_2.setObjectName("toolButton_2")
        self.gridLayout.addWidget(self.toolButton_2, 3, 9, 1, 1)
        self.SkipFortoolButton_8 = QtWidgets.QToolButton(NewProject)
        self.SkipFortoolButton_8.setStyleSheet("")
        icon3 = QtGui.QIcon()
        icon3.addPixmap(QtGui.QPixmap(":/VgisIcon/mActionArrowRight.svg"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.SkipFortoolButton_8.setIcon(icon3)
        self.SkipFortoolButton_8.setObjectName("SkipFortoolButton_8")
        self.gridLayout.addWidget(self.SkipFortoolButton_8, 3, 8, 1, 1)
        self.SkipBacktoolButton_7 = QtWidgets.QToolButton(NewProject)
        self.SkipBacktoolButton_7.setStyleSheet("")
        icon4 = QtGui.QIcon()
        icon4.addPixmap(QtGui.QPixmap(":/VgisIcon/mActionArrowLeft.svg"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.SkipBacktoolButton_7.setIcon(icon4)
        self.SkipBacktoolButton_7.setObjectName("SkipBacktoolButton_7")
        self.gridLayout.addWidget(self.SkipBacktoolButton_7, 3, 7, 1, 1)
        self.toolButton = QtWidgets.QToolButton(NewProject)
        icon5 = QtGui.QIcon()
        icon5.addPixmap(QtGui.QPixmap(":/VgisIcon/mActionAtlasPrev.svg"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.toolButton.setIcon(icon5)
        self.toolButton.setObjectName("toolButton")
        self.gridLayout.addWidget(self.toolButton, 3, 6, 1, 1)
        self.pushButton = QtWidgets.QPushButton(NewProject)
        self.pushButton.setObjectName("pushButton")
        self.gridLayout.addWidget(self.pushButton, 3, 0, 1, 1)
        self.toolButton_4 = QtWidgets.QToolButton(NewProject)
        self.toolButton_4.setObjectName("toolButton_4")
        self.gridLayout.addWidget(self.toolButton_4, 3, 12, 1, 1)
        self.checkBox = QtWidgets.QCheckBox(NewProject)
        self.checkBox.setObjectName("checkBox")
        self.gridLayout.addWidget(self.checkBox, 3, 14, 1, 1)
        self.gridLayout_2.addLayout(self.gridLayout, 0, 0, 1, 1)

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

    def retranslateUi(self, NewProject):
        _translate = QtCore.QCoreApplication.translate
        NewProject.setWindowTitle(
            _translate("NewProject", "Video UAV Tracker - New Project"))
        self.replayPlay_pushButton.setText(
            _translate("NewProject", "Play/Pause"))
        self.replayPosition_label.setText(_translate("NewProject",
                                                     "-:- / -:-"))
        self.pushButton_2.setToolTip(
            _translate(
                "NewProject",
                "<html><head/><body><p>Synchronize actual video frame with selected GPS time</p></body></html>"
            ))
        self.comboBox.setToolTip(
            _translate("NewProject",
                       "<html><head/><body><p> GPS time</p></body></html>"))
        self.pushButton_2.setText(_translate("NewProject", "Synchronize!"))
        self.toolButton_3.setToolTip(
            _translate(
                "NewProject",
                "<html><head/><body><p>Add point shape database to project</p></body></html>"
            ))
        #self.toolButton_3.setText(_translate("NewProject", "DB"))
        self.toolButton_2.setToolTip(
            _translate("NewProject",
                       "<html><head/><body><p>Next second</p></body></html>"))
        self.toolButton_2.setText(_translate("NewProject", ">>"))
        self.SkipFortoolButton_8.setToolTip(
            _translate("NewProject",
                       "<html><head/><body><p>Next frame</p></body></html>"))
        self.SkipFortoolButton_8.setText(_translate("NewProject", ">"))
        self.SkipBacktoolButton_7.setToolTip(
            _translate(
                "NewProject",
                "<html><head/><body><p>Previous frame</p></body></html>"))
        self.SkipBacktoolButton_7.setText(_translate("NewProject", "<"))
        self.toolButton.setToolTip(
            _translate(
                "NewProject",
                "<html><head/><body><p>Previous second</p></body></html>"))
        self.toolButton.setText(_translate("NewProject", "<<"))
        self.pushButton.setToolTip(
            _translate(
                "NewProject",
                "<html><head/><body><p>Select video and relative gpx</p></body></html>"
            ))
        self.pushButton.setText(
            _translate("NewProject", "Select Video and GPX"))
        self.toolButton_4.setText(_translate("NewProject", "3D"))
        self.checkBox.setToolTip(
            _translate(
                "NewProject",
                "<html><head/><body><p>Activate Pixel value conversion and display (see README)</p></body></html>"
            ))
Пример #20
0
    def __init__(self, parent=None):
        super(VideoWindow, self).__init__(parent)
        self.setWindowTitle("Barulhômetro")
        self.videos = {
            'leve': os.path.abspath("recursos/leve.mp4"),
            'medio': os.path.abspath("recursos/medio.mp4"),
            'forte': os.path.abspath("recursos/forte.mp4"),
            'mega': os.path.abspath("recursos/mega.mp4")
        }
        self.button1 = Button(2)
        self.button1.when_pressed = self.clickBtn1
        self.button2 = Button(3)
        self.button2.when_pressed = self.clickBtn2
        self.button3 = Button(4)
        self.button3.when_pressed = self.clickBtn3
        self.button4 = Button(5)
        self.button4.when_pressed = self.clickBtn4
        self.signal_btn.connect(self.on_click)

        self.acabou = False
        self.setStyleSheet("""QLabel{
                            margin: 40px;
                            qproperty-alignment: AlignCenter;
                            }
                            .QWidget{
                                border-image: url(recursos/fotinha.jpeg) 0 0 0 0 stretch stretch;
                            }
                            """)

        # Cria o player de video
        self.mediaPlayer = QMediaPlayer(None, QMediaPlayer.VideoSurface)
        video_widget = QVideoWidget()

        # Create a widget for window contents
        wid = QWidget(self)
        self.setCentralWidget(wid)
        self.layout = QStackedLayout(wid)

        # Cria o widget das opções
        self.options_widget = QWidget(self)
        # Cria imagem de fundo
        self.options_widget.setStyleSheet(
            ".QWidget{border-image: url(recursos/fotinha.jpeg) 0 0 0 0 stretch stretch;}"
        )
        # Cria o layout do widget das opções
        layout_widgets = QVBoxLayout(self.options_widget)
        self.titulo = QLabel("Barulhômetro")
        self.titulo.setStyleSheet("font-size:48px;")
        leve = QLabel("Aqui entra descrição rápida do terremoto leve")
        medio = QLabel("Aqui entra descrição rápida do terremoto medio")
        pesado = QLabel("Aqui entra descrição rápida do terremoto pesado")
        mega = QLabel("Aqui entra descrição rápida do terremoto mega")
        video = QPushButton("Vídeo")
        video.clicked.connect(self.openFile)
        layout_widgets.setAlignment(Qt.AlignCenter)
        layout_widgets.addWidget(self.titulo)
        layout_widgets.addWidget(leve)
        layout_widgets.addWidget(medio)
        layout_widgets.addWidget(pesado)
        layout_widgets.addWidget(mega)
        layout_widgets.addWidget(video)

        self.layout.addWidget(video_widget)
        self.layout.addWidget(self.options_widget)
        video_widget.setStyleSheet("background:rgba(0,0,0,0)")
        self.layout.setCurrentIndex(1)
        self.mediaPlayer.setVideoOutput(video_widget)
        self.mediaPlayer.error.connect(self.handleError)
Пример #21
0
class MainWindow(QMainWindow):
    directory_path = ""
    video_paths = []
    video_infos = []
    main_width = 1500
    main_height = 800
    key_frame_dir = ""

    def __init__(self):
        super().__init__()
        self.tabs = []
        self.tab_names = []

        self.__initUI()

    def __initUI(self):
        # Create a widget for window contents
        self.central_widget = QWidget(self)
        self.setCentralWidget(self.central_widget)

        # Create new action
        open_action = QAction(QIcon('open.png'), '&Open', self)
        open_action.setShortcut('Ctrl+O')
        open_action.setStatusTip('Open movie')
        open_action.triggered.connect(self.__openDownloadDirectory)

        # Create exit action
        exit_action = QAction(QIcon('exit.png'), '&Exit', self)
        exit_action.setShortcut('Ctrl+Q')
        exit_action.setStatusTip('Exit application')
        exit_action.triggered.connect(self.close)

        # Create menu bar and add action
        menu_bar = self.menuBar()
        menu = menu_bar.addMenu('&메뉴')
        menu.addAction(open_action)
        menu.addAction(exit_action)

        self.statusBar()
        self.setFrameViewWidget()
        self.setVideoWidget()
        self.setVideoControlWidget()
        self.setTabWidget()
        self.setMainLayout()
        # Set widget to contain window contents
        self.central_widget.setLayout(self.main_layout)
        self.setGeometry(300, 300, self.main_width, self.main_height)
        self.setWindowTitle('Video Previewer')
        self.show()

    def setFrameViewWidget(self):
        self.frame = QLabel(self)
        self.frame.setFrameShape(QFrame.Panel)
        self.frame.setFixedHeight(self.main_height / 2)
        self.frame.setFixedWidth(self.main_width / 3)
        self.frame.setStyleSheet("background: white; border:1px solid gray;")
        self.frame.setAlignment(Qt.AlignCenter)

    def setVideoWidget(self):
        self.videoWidget = QVideoWidget()
        self.videoWidget.setStyleSheet("background: white; border:1px solid rgb(0, 0, 0);")
        self.videoWidget.setFixedWidth(self.main_width / 3)
        self.videoWidget.setFixedHeight(self.main_height / 2)

        self.mediaPlayer = QMediaPlayer(None, QMediaPlayer.VideoSurface)
        self.mediaPlayer.setVideoOutput(self.videoWidget)
        self.mediaPlayer.stateChanged.connect(self.mediaStateChanged)
        self.mediaPlayer.positionChanged.connect(self.positionChanged)
        self.mediaPlayer.durationChanged.connect(self.durationChanged)
        self.mediaPlayer.error.connect(self.handleError)

    def setVideoControlWidget(self):
        self.play_button = QPushButton()
        self.play_button.setEnabled(False)
        self.play_button.setIcon(self.style().standardIcon(QStyle.SP_MediaPlay))
        self.play_button.clicked.connect(self.play)
        self.play_button.setFixedWidth(50)

        self.position_slider = QSlider(Qt.Horizontal)
        self.position_slider.setRange(0, 0)
        self.position_slider.sliderMoved.connect(self.setPosition)
        self.position_slider.setFixedWidth(self.main_width / 3 - 55)

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

        self.controlLayout = QGridLayout()
        self.controlLayout.setAlignment(Qt.AlignLeft)
        self.controlLayout.setAlignment(Qt.AlignTop)
        self.controlLayout.addWidget(self.videoWidget, 0, 0, 1, 2)
        self.controlLayout.addWidget(self.play_button, 1, 0)
        self.controlLayout.addWidget(self.position_slider, 1, 1)

    def setMainLayout(self):
        self.main_layout = QGridLayout()
        self.main_layout.setAlignment(Qt.AlignTop)
        self.main_layout.addLayout(self.controlLayout, 1, 0)
        self.main_layout.addWidget(self.frame, 2, 0)
        self.main_layout.addWidget(self.tabWidget, 0, 1, 3, 3)
        # self.main_layout.addWidget(self.errorLabel)

    def setVideoTab(self, row_count):
        column_headers = ['Thumbnail', 'Name', 'Size', 'Created Date', 'Modified Date']
        self.tab_videos = QTableWidget()
        self.tab_videos.resize(290, 290)
        self.tab_videos.setRowCount(row_count)
        self.tab_videos.setColumnCount(5)
        self.tab_videos.setHorizontalHeaderLabels(column_headers)
        self.tabWidget.addTab(self.tab_videos, "Videos")

    def setVideoTabItems(self, videos):
        for video in videos:
            video_info = os.path.join(self.directory_path, video)
            self.video_paths.append(video_info)
            self.video_infos.append([
                "",
                video,
                "%.2f MB" % (os.path.getsize(video_info) / (1024.0 * 1024.0)),
                time.ctime(os.path.getctime(video_info)),
                time.ctime(os.path.getmtime(video_info))
            ])

        for row, video_infos in enumerate(self.video_infos):
            for col, video_info in enumerate(video_infos):
                self.tab_videos.setItem(row, col, QTableWidgetItem(str(video_infos[col])))

        self.tab_videos.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.tab_videos.cellClicked.connect(self.videoCellClicked)
        self.tab_videos.cellDoubleClicked.connect(self.videoCellDoubleClicked)

        header = self.tab_videos.horizontalHeader()
        for idx in range(len(videos)):
            header.setSectionResizeMode(idx, QtWidgets.QHeaderView.ResizeToContents)

    @pyqtSlot(int, int)
    def videoCellClicked(self, row, col):
        self.tab_videos.selectRow(row)
        cell = self.tab_videos.item(row, 1)

    @pyqtSlot(int, int)
    def videoCellDoubleClicked(self, row, col):
        self.openFile(self.video_paths[row])
        self.tab_videos.selectRow(row)

    def setFrameTab(self):
        self.tab_keyframes = QListWidget()
        self.tab_keyframes.setViewMode(QListWidget.IconMode)
        self.tab_keyframes.setIconSize(QSize(225, 225))
        self.tab_keyframes.itemDoubleClicked.connect(self.frameCellDoubleClicked)
        self.tabWidget.addTab(self.tab_keyframes, "Key frames")

    def frameCellDoubleClicked(self, item=None):
        self.frame.setStyleSheet("background: black")
        pixmap = QPixmap(os.path.join(self.key_frame_dir, item.text()))
        self.frame.setPixmap(pixmap)

    def setTabWidget(self):
        self.tabWidget = QTabWidget()



    def __openDownloadDirectory(self):
        directory_path = str(QFileDialog.getExistingDirectory(self, "Select Directory"))
        if directory_path:
            self.directory_path = directory_path
            videos = os.listdir(self.directory_path)
            self.setVideoTab(len(videos))
            self.setFrameTab()
            self.setVideoTabItems(videos)

        else :
            print("Info: You didn't select directory. current directory path is \"{}\"".format(self.directory_path))

    def openFile(self, fileName):
        if fileName != '':
            self.mediaPlayer.setMedia(QMediaContent(QUrl.fromLocalFile(fileName)))
            self.play_button.setEnabled(True)

            ffmpeg = FFmpegWrapper()
            ffmpeg.setOptions(video_path=fileName)
            if not os.path.isdir(ffmpeg.getOutputDir()):
                ffmpeg.runFFmpeg()

            keyframelist_file = ffmpeg.getKeyframesPathFile()

            detector = darknetDetectorWrapper()
            detector.setInputPath(input_paths=keyframelist_file)
            detector.setOutputPath(ffmpeg.getOutputDir())
            detector.runDarknetDetector()

            frame_names = self.readFrames(keyframelist_file)

            self.tab_keyframes.clear()
            self.key_frame_dir = frame_names[0].replace(frame_names[0].split("\\")[-1],"")
            for frame_name in frame_names:
                item = QListWidgetItem(QIcon(frame_name), frame_name.split("\\")[-1])
                self.tab_keyframes.addItem(item)

    def readFrames(self, keyframelist_file):
        frame_names = []
        with open(keyframelist_file, 'r') as file:
            for frame in file:
                frame_names.append(frame.split("\n")[0])

        return frame_names

    def play(self):
        if self.mediaPlayer.state() == QMediaPlayer.PlayingState:
            self.mediaPlayer.pause()
        else:
            self.mediaPlayer.play()

    def mediaStateChanged(self, state):
        if self.mediaPlayer.state() == QMediaPlayer.PlayingState:
            self.play_button.setIcon(
                self.style().standardIcon(QStyle.SP_MediaPause))
        else:
            self.play_button.setIcon(
                self.style().standardIcon(QStyle.SP_MediaPlay))

    def positionChanged(self, position):
        self.position_slider.setValue(position)

    def durationChanged(self, duration):
        self.position_slider.setRange(0, duration)

    def setPosition(self, position):
        self.mediaPlayer.setPosition(position)

    def handleError(self):
        self.play_button.setEnabled(False)
        self.errorLabel.setText("Error: " + self.mediaPlayer.errorString())
Пример #22
0
class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(706, 493)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(":/plugins/VideoGis/icon.png"),
                       QtGui.QIcon.Normal, QtGui.QIcon.Off)
        Form.setWindowIcon(icon)
        self.verticalLayout_3 = QtWidgets.QVBoxLayout(Form)
        self.verticalLayout_3.setObjectName("verticalLayout_3")
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.pushButton_3 = QtWidgets.QPushButton(Form)
        font = QtGui.QFont()
        font.setKerning(True)
        self.pushButton_3.setFont(font)
        icon1 = QtGui.QIcon()
        icon1.addPixmap(QtGui.QPixmap(":/VgisIcon/Hand-icon.png"),
                        QtGui.QIcon.Normal, QtGui.QIcon.On)
        self.pushButton_3.setIcon(icon1)
        self.pushButton_3.setAutoExclusive(False)
        self.pushButton_3.setAutoDefault(False)
        self.pushButton_3.setDefault(False)
        self.pushButton_3.setFlat(False)
        self.pushButton_3.setObjectName("pushButton_3")
        self.horizontalLayout.addWidget(self.pushButton_3)
        self.toolButton_6 = QtWidgets.QToolButton(Form)
        icon2 = QtGui.QIcon()
        icon2.addPixmap(
            QtGui.QPixmap(":/plugins/VideoGis/iconNewTabEditorConsole.png"),
            QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.toolButton_6.setIcon(icon2)
        self.toolButton_6.setObjectName("toolButton_6")
        self.horizontalLayout.addWidget(self.toolButton_6)
        self.toolButton_7 = QtWidgets.QToolButton(Form)
        self.toolButton_7.setEnabled(False)
        self.toolButton_7.setCheckable(True)
        self.toolButton_7.setObjectName("toolButton_7")
        self.horizontalLayout.addWidget(self.toolButton_7)
        self.pushButton = QtWidgets.QPushButton(Form)
        self.pushButton.setEnabled(False)
        self.pushButton.setCheckable(True)
        self.pushButton.setObjectName("pushButton")
        self.horizontalLayout.addWidget(self.pushButton)
        self.label_2 = QtWidgets.QLabel(Form)
        self.label_2.setEnabled(False)
        self.label_2.setObjectName("label_2")
        self.horizontalLayout.addWidget(self.label_2)
        self.spinBox = QtWidgets.QSpinBox(Form)
        self.spinBox.setEnabled(False)
        self.spinBox.setMinimum(1)
        self.spinBox.setSingleStep(10)
        self.spinBox.setProperty("value", 25)
        self.spinBox.setObjectName("spinBox")
        self.horizontalLayout.addWidget(self.spinBox)
        spacerItem = QtWidgets.QSpacerItem(23, 20,
                                           QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout.addItem(spacerItem)
        self.toolButton_4 = QtWidgets.QToolButton(Form)
        self.toolButton_4.setObjectName("toolButton_4")
        self.horizontalLayout.addWidget(self.toolButton_4)
        self.toolButton_5 = QtWidgets.QToolButton(Form)
        self.toolButton_5.setObjectName("toolButton_5")
        self.horizontalLayout.addWidget(self.toolButton_5)
        self.verticalLayout_3.addLayout(self.horizontalLayout)
        self.dockWidget_2 = QtWidgets.QDockWidget(Form)
        self.dockWidget_2.setFeatures(
            QtWidgets.QDockWidget.NoDockWidgetFeatures)
        self.dockWidget_2.setAllowedAreas(QtCore.Qt.LeftDockWidgetArea
                                          | QtCore.Qt.RightDockWidgetArea)
        self.dockWidget_2.setObjectName("dockWidget_2")
        self.dockWidgetContents_7 = QtWidgets.QWidget()
        self.dockWidgetContents_7.setObjectName("dockWidgetContents_7")
        self.gridLayout_2 = QtWidgets.QGridLayout(self.dockWidgetContents_7)
        self.gridLayout_2.setObjectName("gridLayout_2")
        self.verticalLayout = QtWidgets.QVBoxLayout()
        self.verticalLayout.setObjectName("verticalLayout")
        self.video_frame = QVideoWidget(Form)
        p = self.video_frame.palette()
        p.setColor(QtGui.QPalette.Window, QtCore.Qt.black)
        self.video_frame.setPalette(p)
        self.video_frame.setAttribute(QtCore.Qt.WA_OpaquePaintEvent)
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred,
                                           QtWidgets.QSizePolicy.Preferred)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.video_frame.sizePolicy().hasHeightForWidth())
        self.video_frame.setSizePolicy(sizePolicy)
        self.video_frame.setMinimumSize(QtCore.QSize(200, 200))
        self.video_frame.setStyleSheet("background-color: rgb(0, 0, 0);")
        self.video_frame.setObjectName("video_frame")
        self.verticalLayout.addWidget(self.video_frame)
        self.horizontalSlider = QtWidgets.QSlider(self.dockWidgetContents_7)
        self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal)
        self.horizontalSlider.setObjectName("horizontalSlider")
        self.verticalLayout.addWidget(self.horizontalSlider)
        self.horizontalLayout_3 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_3.setObjectName("horizontalLayout_3")
        spacerItem1 = QtWidgets.QSpacerItem(98, 20,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_3.addItem(spacerItem1)
        self.toolButton_11 = QtWidgets.QToolButton(self.dockWidgetContents_7)
        icon3 = QtGui.QIcon()
        icon3.addPixmap(QtGui.QPixmap(":/VgisIcon/mActionArrowLeft.svg"),
                        QtGui.QIcon.Normal, QtGui.QIcon.On)
        self.toolButton_11.setIcon(icon3)
        self.toolButton_11.setObjectName("toolButton_11")
        self.horizontalLayout_3.addWidget(self.toolButton_11)
        self.SkipBacktoolButton_8 = QtWidgets.QToolButton(
            self.dockWidgetContents_7)
        self.SkipBacktoolButton_8.setStyleSheet("")
        icon4 = QtGui.QIcon()
        icon4.addPixmap(QtGui.QPixmap(":/VgisIcon/mActionAtlasPrev.svg"),
                        QtGui.QIcon.Normal, QtGui.QIcon.On)
        self.SkipBacktoolButton_8.setIcon(icon4)
        self.SkipBacktoolButton_8.setObjectName("SkipBacktoolButton_8")
        self.horizontalLayout_3.addWidget(self.SkipBacktoolButton_8)
        self.playButton = QtWidgets.QToolButton(self.dockWidgetContents_7)
        self.playButton.setObjectName("playButton")
        self.horizontalLayout_3.addWidget(self.playButton)
        self.muteButton = QtWidgets.QToolButton(self.dockWidgetContents_7)
        self.muteButton.setText("")
        self.muteButton.setObjectName("muteButton")
        self.horizontalLayout_3.addWidget(self.muteButton)
        self.replayPosition_label = QtWidgets.QLabel(self.dockWidgetContents_7)
        self.replayPosition_label.setObjectName("replayPosition_label")
        self.horizontalLayout_3.addWidget(self.replayPosition_label)
        self.SkipFortoolButton_9 = QtWidgets.QToolButton(
            self.dockWidgetContents_7)
        self.SkipFortoolButton_9.setStyleSheet("")
        icon5 = QtGui.QIcon()
        icon5.addPixmap(QtGui.QPixmap(":/VgisIcon/mActionAtlasNext.svg"),
                        QtGui.QIcon.Normal, QtGui.QIcon.On)
        self.SkipFortoolButton_9.setIcon(icon5)
        self.SkipFortoolButton_9.setObjectName("SkipFortoolButton_9")
        self.horizontalLayout_3.addWidget(self.SkipFortoolButton_9)
        self.toolButton_12 = QtWidgets.QToolButton(self.dockWidgetContents_7)
        icon6 = QtGui.QIcon()
        icon6.addPixmap(QtGui.QPixmap(":/VgisIcon/mActionArrowRight.svg"),
                        QtGui.QIcon.Normal, QtGui.QIcon.On)
        self.toolButton_12.setIcon(icon6)
        self.toolButton_12.setObjectName("toolButton_12")
        self.horizontalLayout_3.addWidget(self.toolButton_12)
        spacerItem2 = QtWidgets.QSpacerItem(98, 20,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.horizontalLayout_3.addItem(spacerItem2)
        self.lcdNumber = QtWidgets.QLCDNumber(self.dockWidgetContents_7)
        self.lcdNumber.setObjectName("lcdNumber")
        self.horizontalLayout_3.addWidget(self.lcdNumber)
        self.verticalLayout.addLayout(self.horizontalLayout_3)
        self.gridLayout_2.addLayout(self.verticalLayout, 0, 0, 1, 1)
        self.dockWidget_2.setWidget(self.dockWidgetContents_7)
        self.verticalLayout_3.addWidget(self.dockWidget_2)
        self.dockWidget_4 = QtWidgets.QDockWidget(Form)
        self.dockWidget_4.setMaximumSize(QtCore.QSize(524287, 121))
        self.dockWidget_4.setFeatures(
            QtWidgets.QDockWidget.NoDockWidgetFeatures)
        self.dockWidget_4.setAllowedAreas(QtCore.Qt.BottomDockWidgetArea)
        self.dockWidget_4.setObjectName("dockWidget_4")
        self.dockWidgetContents_6 = QtWidgets.QWidget()
        self.dockWidgetContents_6.setObjectName("dockWidgetContents_6")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(
            self.dockWidgetContents_6)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.label = QtWidgets.QLabel(self.dockWidgetContents_6)
        self.label.setObjectName("label")
        self.verticalLayout_2.addWidget(self.label)
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
        self.horizontalLayout_2.setSizeConstraint(
            QtWidgets.QLayout.SetFixedSize)
        self.horizontalLayout_2.setObjectName("horizontalLayout_2")
        self.pushButtonCutA_6 = QtWidgets.QPushButton(
            self.dockWidgetContents_6)
        self.pushButtonCutA_6.setEnabled(True)
        self.pushButtonCutA_6.setObjectName("pushButtonCutA_6")
        self.horizontalLayout_2.addWidget(self.pushButtonCutA_6)
        self.pushButtonCutB_6 = QtWidgets.QPushButton(
            self.dockWidgetContents_6)
        self.pushButtonCutB_6.setObjectName("pushButtonCutB_6")
        self.horizontalLayout_2.addWidget(self.pushButtonCutB_6)
        self.label_7 = QtWidgets.QLabel(self.dockWidgetContents_6)
        self.label_7.setObjectName("label_7")
        self.horizontalLayout_2.addWidget(self.label_7)
        self.doubleSpinBox_2 = QtWidgets.QDoubleSpinBox(
            self.dockWidgetContents_6)
        self.doubleSpinBox_2.setObjectName("doubleSpinBox_2")
        self.horizontalLayout_2.addWidget(self.doubleSpinBox_2)
        self.comboBox_6 = QtWidgets.QComboBox(self.dockWidgetContents_6)
        self.comboBox_6.setObjectName("comboBox_6")
        self.comboBox_6.addItem("")
        self.comboBox_6.addItem("")
        self.horizontalLayout_2.addWidget(self.comboBox_6)
        self.pushButton_5 = QtWidgets.QPushButton(self.dockWidgetContents_6)
        self.pushButton_5.setObjectName("pushButton_5")
        self.horizontalLayout_2.addWidget(self.pushButton_5)
        self.pushButtonCut_2 = QtWidgets.QPushButton(self.dockWidgetContents_6)
        self.pushButtonCut_2.setObjectName("pushButtonCut_2")
        self.horizontalLayout_2.addWidget(self.pushButtonCut_2)
        self.verticalLayout_2.addLayout(self.horizontalLayout_2)
        self.progressBar = QtWidgets.QProgressBar(self.dockWidgetContents_6)
        self.progressBar.setProperty("value", 24)
        self.progressBar.setObjectName("progressBar")
        self.verticalLayout_2.addWidget(self.progressBar)
        self.dockWidget_4.setWidget(self.dockWidgetContents_6)
        self.verticalLayout_3.addWidget(self.dockWidget_4)

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

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Video UAV Tracker - Player"))
        self.pushButton_3.setToolTip(
            _translate(
                "Form",
                "<html><head/><body><p>Move along Video directly clicking on gps track</p></body></html>"
            ))
        self.pushButton_3.setText(_translate("Form", "MapTool   "))
        self.label_2.setText(_translate("Form", "Overlap %"))
        self.toolButton_6.setToolTip(
            _translate("Form",
                       "<html><head/><body><p>Add point</p></body></html>"))
        self.toolButton_6.setText(_translate("Form", "o"))
        self.toolButton_4.setToolTip(
            _translate(
                "Form",
                "<html><head/><body><p>Enable extract frames toolbox</p><p><br/></p></body></html>"
            ))
        self.toolButton_4.setText(_translate("Form", "Extract frames"))
        self.toolButton_5.setText(_translate("Form", "Close"))
        self.toolButton_11.setText(_translate("Form", "<<"))
        self.SkipBacktoolButton_8.setText(_translate("Form", "<"))
        self.playButton.setText(_translate("Form", "> / ||"))
        self.replayPosition_label.setText(_translate("Form", "-:- / -:-"))
        self.SkipFortoolButton_9.setText(_translate("Form", ">"))
        self.toolButton_12.setText(_translate("Form", ">>"))
        self.label.setText(_translate("Form", "Export Frames Tool"))
        self.pushButtonCutA_6.setToolTip(
            _translate(
                "Form",
                "<html><head/><body><p>Export from actual Video Frame</p></body></html>"
            ))
        self.pushButtonCutA_6.setText(_translate("Form", "From A"))
        self.pushButtonCutB_6.setToolTip(
            _translate(
                "Form",
                "<html><head/><body><p>Export to actual Video Frame</p></body></html>"
            ))
        self.pushButtonCutB_6.setText(_translate("Form", "To B"))
        self.label_7.setText(_translate("Form", "Pick one frame every"))
        self.comboBox_6.setItemText(0, _translate("Form", "meters"))
        self.comboBox_6.setItemText(1, _translate("Form", "seconds"))
        self.pushButton_5.setText(_translate("Form", "Cancel"))
        self.pushButtonCut_2.setText(_translate("Form", "Extract!"))
        self.toolButton_7.setText(_translate("Form", "3D"))
        self.pushButton.setText(_translate("Form", "Create Mosaic"))