Ejemplo n.º 1
0
    def setupUi(self):
        centralWidget = QtWidgets.QWidget(self)
        self.setCentralWidget(centralWidget)

        flags = QtCore.Qt.WindowFlags(
            QtCore.Qt.FramelessWindowHint
            | QtCore.Qt.WindowStaysOnTopHint if self.on_top else QtCore.Qt.
            FramelessWindowHint)
        self.setWindowFlags(flags)
        self.setAttribute(QtCore.Qt.WA_NoSystemBackground, True)
        self.setAttribute(QtCore.Qt.WA_TranslucentBackground, True)

        label = QtWidgets.QLabel(centralWidget)
        movie = QMovie(self.img_path)
        label.setMovie(movie)
        movie.start()
        movie.stop()

        w = int(movie.frameRect().size().width() * self.size)
        h = int(movie.frameRect().size().height() * self.size)
        movie.setScaledSize(QtCore.QSize(w, h))

        movie.start()
        self.setGeometry(self.xy[0], self.xy[1], w, h)

        self.del_label = QtWidgets.QLabel(centralWidget)
        self.del_movie = QMovie('gif/Boom3.gif')
        self.del_label.setMovie(self.del_movie)

        self.del_movie.setScaledSize(QtCore.QSize(w, h))
        self.del_movie.start()
        self.del_label.hide()

        self.setGeometry(self.xy[0], self.xy[1], w, h)
Ejemplo n.º 2
0
    def setupUi(self):
        """
        위젯을 화면 위에 올리기
        :return:
        """
        # contralWidget 정의 :: 정의 안하면 안보임
        centralWidget = QtWidgets.QWidget(self)
        self.setCentralWidget(centralWidget)
        # FramelessWindowHint :: 창의 윗부분이 사라짐(닫기, 최소화 등등 있는 것)
        # WindowStaysOnTopHint :: 화면 항상 위에 있어라. 아래 if문을 만족하면
        flags = QtCore.Qt.WindowFlags(
            QtCore.Qt.FramelessWindowHint
            | QtCore.Qt.WindowStaysOnTopHint if self.on_top else QtCore.Qt.
            FramelessWindowHint)
        # Wa_ :: 창 배경을 깨끗하고 맑고 투명하게
        self.setWindowFlags(flags)
        self.setAttribute(QtCore.Qt.WA_NoSystemBackground, True)
        self.setAttribute(QtCore.Qt.WA_TranslucentBackground, True)

        label = QtWidgets.QLabel(centralWidget)  # 만든 contralWidget을 label에 올리기
        movie = QMovie(self.img_path)  # 위치확인
        label.setMovie(movie)  # 라벨셋팅
        movie.start()
        movie.stop()  # 크기를 구하기위해 한번 켰다끄기
        #사이즈 정의
        w = int(movie.frameRect().size().width() * self.size)
        h = int(movie.frameRect().size().height() * self.size)
        movie.setScaledSize(QtCore.QSize(w, h))
        movie.start()
        # 크기 위치 정의
        self.setGeometry(self.xy[0], self.xy[1], w, h)
Ejemplo n.º 3
0
    def setupUi(self):
        centralWidget = QtWidgets.QWidget(self)
        self.setCentralWidget(centralWidget)

        flags = QtCore.Qt.WindowFlags(QtCore.Qt.FramelessWindowHint)
        self.setWindowFlags(flags)
        self.setAttribute(QtCore.Qt.WA_NoSystemBackground, True)
        self.setAttribute(QtCore.Qt.WA_TranslucentBackground, True)  # 창 배경 투명화

        label = QtWidgets.QLabel(centralWidget)
        movie = QMovie(self.img_path)
        label.setMovie(movie)
        movie.start()
        movie.stop()

        w = int(movie.frameRect().size().width() *
                self.size)  # 50%... 30% 등의 추가 사이즈 조정을 위해 곱함
        h = int(movie.frameRect().size().height() * self.size)

        movie.setScaledSize(QtCore.QSize(w, h))  # 맞춘 w, h 사이즈에 따라 애니메이션 설정
        movie.start()  # 재생

        self.setGeometry(self.xy[0], self.xy[1], w, h)
Ejemplo n.º 4
0
    def setupUi(self):
        centralWidget = QtWidgets.QWidget(self)
        self.setCentralWidget(centralWidget)

        flags = QtCore.Qt.WindowFlags(
            QtCore.Qt.FramelessWindowHint
            | QtCore.Qt.WindowStaysOnTopHint if self.on_top else QtCore.Qt.
            FramelessWindowHint)
        self.setWindowFlags(flags)
        self.setAttribute(QtCore.Qt.WA_NoSystemBackground, True)  ####
        self.setAttribute(QtCore.Qt.WA_TranslucentBackground, True)  ####

        ##############
        label = QtWidgets.QLabel(centralWidget)
        movie = QMovie(self.img_path)
        label.setMovie(movie)

        label2 = QtWidgets.QLabel(centralWidget)
        label2.move(0, 540)

        label2.setMovie(movie)

        label3 = QtWidgets.QLabel(centralWidget)
        label3.move(960, 0)
        label3.setMovie(movie)
        label4 = QtWidgets.QLabel(centralWidget)
        label4.move(960, 540)
        label4.setMovie(movie)

        movie.start()
        movie.stop()

        w = int(movie.frameRect().size().width() * self.size)
        h = int(movie.frameRect().size().height() * self.size)
        movie.setScaledSize(QtCore.QSize(w, h))
        movie.start()
Ejemplo n.º 5
0
class Demo3(QDialog):
    def __init__(self, parent=None):
        QDialog.__init__(self, parent)
        self.setWindowTitle('show_gif')
        self.setWindowIcon(QIcon('image/Capture_64px.png'))
        self.setWindowFlags(self.windowFlags() | Qt.WindowMinMaxButtonsHint)
        # self.resize(400,400)
        self.setFixedSize(800, 600)
        mainl = QVBoxLayout(self)
        self.labelShow = QLabel()
        self.labelShow.setContentsMargins(0, 0, 0, 0)
        pat = self.labelShow.palette()
        pat.setBrush(QPalette.Background, Qt.darkGray)
        self.labelShow.setAutoFillBackground(True)
        self.labelShow.setPalette(pat)
        self.labelShow.setAlignment(Qt.AlignCenter)
        # self.labelShow.setScaledContents(True)
        mainl.addWidget(self.labelShow, 1)
        line = QFrame()
        line.setFrameShape(QFrame.HLine)
        line.setFrameShadow(QFrame.Sunken)
        mainl.addWidget(line)
        btnLay = QHBoxLayout()

        frmLay = QFormLayout()
        self._spinBox = QSpinBox()
        frmLay.addRow('跳转:', self._spinBox)
        btnGo = QPushButton('Go', self)

        btnPrev = QPushButton('上一张', self)
        self.btnNext = QPushButton('下一张', self)
        btnPrev.clicked.connect(self.on_prev)
        self.btnNext.clicked.connect(self.on_next)
        btnGo.clicked.connect(lambda: self.flashMovie(self._spinBox.value()))
        self._spinBox.valueChanged.connect(lambda n: self.flashMovie(n))
        btnLay.addStretch()
        btnLay.addLayout(frmLay)
        btnLay.addWidget(btnGo)
        btnLay.addWidget(btnPrev)
        btnLay.addWidget(self.btnNext)
        btnLay.addStretch()
        mainl.addLayout(btnLay)

        labLay = QHBoxLayout()
        labLay.setSpacing(10)
        self._label = QLabel()
        frm1 = QFormLayout()
        frm1.addRow('共:', self._label)
        frm1.setRowWrapPolicy(QFormLayout.WrapLongRows)
        labLay.addStretch()
        labLay.addLayout(frm1)
        frm1 = QFormLayout()
        self._labInfo = QLabel()
        # self._labInfo.setWordWrap(True)
        frm1.addRow('当前:', self._labInfo)
        # frm1.setFieldGrowthPolicy(QFormLayout.ExpandingFieldsGrow)
        frm1.setRowWrapPolicy(QFormLayout.WrapLongRows)
        labLay.addLayout(frm1)
        frm1 = QFormLayout()
        self._labPlay = QLabel()
        frm1.addRow('播放帧号:', self._labPlay)
        labLay.addLayout(frm1)
        frm1.setRowWrapPolicy(QFormLayout.WrapLongRows)

        labLay.addStretch()
        labLay.setSpacing(10)
        line = QFrame()
        line.setFrameShape(QFrame.HLine)
        line.setFrameShadow(QFrame.Sunken)
        mainl.addWidget(line)
        mainl.addLayout(labLay)
        self._gifs = []
        self._movie = QMovie()
        self.labelShow.setMovie(self._movie)
        QTimer.singleShot(0, self.on_firstShow)
        self._picIndex = 0
        self._movie.frameChanged.connect(self.on_frameChange)
        # self._movie.finished.connect(lambda:self.btnNext.clicked.emit())

    def on_frameChange(self, n):
        self._labPlay.setText(' {} 帧'.format(n))
        if n + 1 == self._movie.frameCount():
            self.btnNext.clicked.emit()

    def on_firstShow(self):
        dir = r'E:\jiandanspider\pic'
        for i in os.listdir(dir):
            # print(os.path.isfile(i),i.lower(),i.lower().endswith('gif'))
            fullPath = os.path.join(dir, i)
            if os.path.isfile(fullPath) and i.lower().endswith('gif'):
                self._gifs.append(fullPath)

        self._spinBox.setMaximum(len(self._gifs))
        self._label.setText('%03d条记录' % len(self._gifs))
        if len(self._gifs) > 0:
            self._movie.setFileName(self._gifs[0])
            self._movie.start()
            self._labInfo.setText('{},{}帧\n{}'.format(
                os.path.split(self._movie.fileName())[1],
                self._movie.frameCount(), self._movie.frameRect()))

    def flashMovie(self, index):

        if index >= len(self._gifs):
            return
        self._movie.stop()
        self._movie.setFileName(self._gifs[index])
        self._movie.start()

        self._spinBox.valueChanged.disconnect()
        self._spinBox.setValue(index)
        self._labInfo.setText('{},{}帧\n{}'.format(
            os.path.split(self._movie.fileName())[1], self._movie.frameCount(),
            self._movie.frameRect()))
        self._spinBox.valueChanged.connect(lambda n: self.flashMovie(n))
        self._picIndex = index

    def on_next(self):
        self._picIndex += 1
        if self._picIndex >= len(self._gifs):
            self._picIndex = len(self._gifs) - 1
        self.flashMovie(self._picIndex)

    def on_prev(self):
        self._picIndex -= 1
        if self._picIndex < 0:
            self._picIndex = 0
        self.flashMovie(self._picIndex)