我正在尝试通过创建动画循环来在PyQT中制作一个矩形动画。我已经使用window.after()
方法在TKinter中完成了这个操作,并试图在PyQt5中使用QtCore.QTimer.singleShot()
做同样的事情,但是当我运行代码时它会提示QtCore
未定义,而我相信我已经导入了它!此外-这种方法能行吗?有更好的方法吗?
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.Qt import *
from PyQt5.QtCore import *
def animate():
global a
global x
mw.paintEvent = paintEvent
a = a+1
x = x+1
QtCore.QTimer.singleShot(33, animate)
def paintEvent(e):
qp = QPainter()
qp.begin(mw)
qp.setBrush(QColor(200, 0, 0))
qp.drawRect(a, b, x, y)
qp.end()
a = 10
b = 15
x = 90
y = 60
app = QApplication(sys.argv)
mw = QMainWindow()
mw.setWindowTitle('PyQt5 - Main Window')
mw.setWindowIcon(QIcon("icon.jpg"))
mw.resize(300,100)
animate()
mw.show()
sys.exit(app.exec_())