gpt4 book ai didi

python - PyQt4 - 创建一个计时器

转载 作者:太空狗 更新时间:2023-10-29 20:42:02 26 4
gpt4 key购买 nike

对于这个问题,我很抱歉,但我已经阅读了很多东西,但似乎我不知道如何制作计时器。所以我发布了我的代码:

from PyQt4 import QtGui, QtCore
from code.pair import Pair
from code.breadth_first_search import breadth_first_search
import functools


class Ghosts(QtGui.QGraphicsPixmapItem):

def __init__(self, name):
super(Ghosts, self).__init__()

self.set_image(name)

def chase(self, goal):
pos = Pair(self.x(), self.y())
path = breadth_first_search(pos, goal)
while not path.empty():
aim = path.get_nowait()
func = functools.partial(self.move_towards, aim)
timer = QtCore.QTimer()
QtCore.QTimer.connect(timer, QtCore.SIGNAL("timeout()"), self, QtCore.SLOT("func()"))
timer.start(200)

def move_towards(self, goal):
self.setPos(goal.first(), goal.second())

我试图让物体每 200 毫秒向其目标移动一次。我没有 self 尝试它给了我同样的错误:

QObject.connect(QObject, SIGNAL(), QObject, SLOT(), Qt.ConnectionType=Qt.AutoConnection): argument 3 has unexpected type 'bytes'
QObject.connect(QObject, SIGNAL(), callable, Qt.ConnectionType=Qt.AutoConnection): argument 3 has unexpected type 'bytes'
QObject.connect(QObject, SIGNAL(), SLOT(), Qt.ConnectionType=Qt.AutoConnection): argument 2 has unexpected type 'bytes'

我不知道如何将计时器连接到带参数的函数。我认为我没有正确使用 SLOT 参数,但它给了我那些神秘的赌注。我想这都是错误的。我会很感激一些帮助:)

最佳答案

使用新样式的信号,它们更容易理解。

交换-

QtCore.QTimer.connect(timer, QtCore.SIGNAL("timeout()"), self, QtCore.SLOT("func()"))

与 -

timer.timeout.connect(self.move_towards)   # assuming that move_towards is the handler

一个简单但完整的工作计时器示例 -

import sys

from PyQt4.QtCore import QTimer
from PyQt4.QtGui import QApplication

app = QApplication(sys.argv)
app.setQuitOnLastWindowClosed(False)

def tick():
print 'tick'

timer = QTimer()
timer.timeout.connect(tick)
timer.start(1000)

# run event loop so python doesn't exit
app.exec_()

关于python - PyQt4 - 创建一个计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32362340/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com