pyqt와 함께 타이머를 사용하려고합니다. 아래 코드는 있지만 아무것도 인쇄하지 않으며 오류가 발생하지 않습니다. 누가 잘못되었는지 아는 사람 있습니까?
감사pyqt 타이머가 값이나 오류를 반환하지 않습니다.
import functools
from PyQt4.QtCore import QTimer
def onTimer(initParams):
print initParams
print "HERE"
# your code here...
def update():
print "Upd"
myInitParams = "Init!"
timerCallback = functools.partial(onTimer, myInitParams)
myTimer = QTimer()
myTimer.timeout.connect(timerCallback)
myTimer.start(1000) #once a sec
t = QTimer()
t.start(500)
t.timeout.connect(update)
편집 UPDATE :
그래서이 좀 더 복잡하고 어쩌면 다른 문제가 사용하는 전체 코드 메신저의 싹둑,하지만 결과는 동일합니다.
구조는 다음과 같이이다 :
from PyQt4 import QtCore, QtGui
# Import the UI Classes from the ui directory in this package
from ui.MoAnGUI import Ui_MoAnWindow
class MoAnWin(QtGui.QDialog, Ui_MoAnWindow):
def __init__(self, parent=None):
super(MoAnWin, self).__init__(parent=parent)
self.setupUi(self)
self.playMarkers.clicked.connect(self._PlayMarkers)
self.connect(self,QtCore.SIGNAL("PlayMarker"),PlayMarkerCall)
#Marker Stop
self.stopMarkers.clicked.connect(self._StopMarkers)
self.connect(self,QtCore.SIGNAL("StopMarker"),StopMarkerCall)
def _StopMarkers(self):
arg = "Stop"
self.emit(QtCore.SIGNAL("StopMarker"),arg)
def _PlayMarkers(self):
fps = self.fpsBox.value()
starttime = self.fromTime.value()
endtime = self.ToTime.value()
arg = [fps,starttime,endtime]
self.emit(QtCore.SIGNAL("PlayMarker"),arg)
def StopMarkerCall(arg):
#I want to stop the timer here
def PlayMarkerCall(arg):
#I tried this, but again, nothing happens, no error
myInitParams = "Init!"
timerCallback = functools.partial(TimerCall, myInitParams)
myTimer = QtCore.QTimer()
myTimer.timeout.connect(timerCallback)
myTimer.start(1000) #once a sec
#I Imagine something like this:
myTimer = QtCore.QTimer()
for i in range(start,end):
# I want to connect to my view marker function but i need to pass a variable
myTimer.timeout.connect(ViewMarkerCall(i))
myTimer.start(1000)
def TimerCall(args):
print "HERE", args
def show():
global globalMoAnWindow
app = QtGui.QApplication(sys.argv)
globalMoAnWindow = MoAnWin()
globalMoAnWindow.show()
sys.exit(app.exec_())
return globalMoAnWindow
show()
내 목표는 버튼 클릭 플레이를하는 것입니다, 물건은 정지 버튼을 눌러 재생을 정지, 일정 시간 간격으로 qtgraphic 위젯에서 발생합니다. 나는 여기에 다른 질문에서 functools을 발견했지만, 올바른 일을한다면 확실하지 않습니다.
나는이 질문을 간단하게하려고 애썼고, 앱에서 그것을 꺼내는 것이 그것을 깨뜨렸다는 것을 깨달았다. 구현 문제를 해결하기 위해 내 질문을 업데이트했습니다. 그걸 도울 수 있니? – user1938107
myTimer를 전역 범위로 정의 해 주셔서 감사합니다. 아픈 것은 아마 나중에 약간의 질문을 할 필요가있다. 그러나 이것은 내가 지금 거의 도움이되었다! – user1938107