UI(Qt Designer)には、「開始」ボタン、「停止」ボタン、lcdNumberがあり、「開始」と「停止」の間の秒数を表示する必要があります" は、私はそこの指示に従っ:その行を書きながらconnect
が私に提案されたもののQTimer/Python:開始から停止までの秒数
しかし、私のtimeout
は、動作していないCan't seem to get pyqt countdown timer to work:QtCore.QTimer.timeout.connect(self.tick_timer)はAttributeError:「PyQt4.QtCoreを。そのようなスロットメインウィンドウを:: FUNC() オブジェクト:pyqtSignal私も私のupdate_timer機能でそのような行(QtCore.QTimer.connect(QtCore.QTimer(), QtCore.SIGNAL("timeout()"), self, QtCore.SLOT("func()"))
)を実装しようとしたが、これはエラーが(オブジェクトん::接続する原因となる 『
を接続する」オブジェクトには属性がありません』 :: connect:(受信者名: 'MainWindow'))、私はタイムアウトで接続信号を使用する方法を本当に理解していません。
「タイムアウト」ラインアウトをコメントアウトするとMainWindowが表示されますが、lcdディスプレイに0:01が表示されるため、「スタート」ボタンをクリックすると明らかに「tick_timer」機能が1回だけ実行されます。
ありがとうございました!
代わりのQtCore.QTimer.start
from PyQt4 import QtCore, QtGui, uic
class MainWindow(QtGui.QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
uic.loadUi('MainWindow.ui', self)
# Buttons
self.QStartButton.clicked.connect(self.start_timer)
self.QStopButton.clicked.connect(self.stop_timer)
# Timer
QtCore.QTimer.timeout.connect(self.tick_timer)
def start_timer(self):
self.now = 0
self.tick_timer()
QtCore.QTimer.start
def update_timer(self):
self.runtime = "%d:%02d" % (self.now/60,self.now % 60)
self.lcdNumber.display(self.runtime)
def tick_timer(self):
self.now += 1
self.update_timer()
def stop_timer(self):
QtCore.QTimer.stop
私は 'self.timerを挿入する必要がありますか= QtCore.QTimer() 'はすべての関数で使用されますか?現時点では、この行はstart_timer関数内にあり、その他の関数はそれに不満を抱いています:AttributeError: 'MainWindow'オブジェクトに 'timer'属性がありません –
いいえ、これは '__init__'関数でのみ必要です – Zaiborg