我的目标是在按下按钮时播放gif,但由于某种原因它不起作用。我认为这值得一提的是,按键可以停止动画self.movie.stop()
,但它在所有没有工作,self.movie.start()
我敢肯定,该按钮并拨打监守我已经把print语句的功能,但self.movie.start()
不工作
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton
from PyQt5.QtCore import Qt, QTimer, QSize
from PyQt5.QtGui import QMovie
class APP(QWidget):
def __init__(self):
super().__init__()
self.setStyleSheet("background-color: white;")
self.setGeometry(0, 0, 300, 300)
self.movie = QMovie(r'C:\Users\Name\Desktop\Desktop\de.gif')
self.movie.setScaledSize(QSize(300,225))
self.btn = QPushButton(self)
self.btn.clicked.connect(self.strt)
self.btn.setGeometry(100,130,150,50)
self.label = QLabel(self)
self.label.setMovie(self.movie)
self.show()
def strt(self):
print("Button pressed")
self.movie.start()
app = QApplication(sys.argv)
demo = APP()
app.exit(app.exec())
布尔QMovie :: jumpToFrame(int frameNumber)
跳到帧号frameNumber。成功返回true;否则返回false。
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton
from PyQt5.QtCore import Qt, QTimer, QSize
from PyQt5.QtGui import QMovie
class APP(QWidget):
def __init__(self):
super().__init__()
self.setStyleSheet("background-color: white;")
self.setGeometry(0, 0, 300, 300)
# self.movie = QMovie(r'C:\Users\Name\Desktop\Desktop\de.gif')
self.movie = QMovie(self) # + self
self.movie.setFileName('D:/_Qt/__Qt/img/Fo2BxBK.gif') # +
self.movie.setScaledSize(QSize(300,225))
self.movie.jumpToFrame(0) # +
self.label = QLabel(self) # +
self.label.setMovie(self.movie) # +
self.btn = QPushButton("Start", self)
self.btn.setCheckable(True) # +
self.btn.clicked.connect(self.strt)
self.btn.setGeometry(100,230,150,50)
# self.label = QLabel(self)
# self.label.setMovie(self.movie)
self.show()
def strt(self, state): # + state
print("Button pressed", state)
if state:
self.movie.start()
self.btn.setText("Stop")
else:
self.movie.stop()
self.btn.setText("Start")
app = QApplication(sys.argv)
demo = APP()
app.exit(app.exec())
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句