2016-12-26 15 views
0

私は簡単な質問がありますが、解決できませんでした。 は、デフォルト時間が00:00:00から1秒ごとに増加するように、QTimeEditを使用してpyqtでタイマーを作成します。次のコードを試しましたが、1秒追加した後に停止します。pyqtでタイマーを作成するには

self.timer = QtCore.QTimer() 
self.timer.timeout.connect(self.time) 
self.timer.start(1000) 

def time(self): 
    self.upTime.setTime(QtCore.QTime(00,00,00).addSecs()) 
+0

をあなたの全体のコードを表示します。 – Inconnu

+0

'QtCore.QTime(00,00,00).addSecs()'を使用すると大きな値を得ることはできません。 'QtCore.QTime(00,00,00)'を一度だけ作成し、 'time()'でそれを増やす必要があります。 – furas

答えて

2

私はそれをテストすることはできませんが、私はあなたが一度だけQtCore.QTime(00,00,00)を作成し、後でtime()にその値を大きくする必要が

self.curr_time = QtCore.QTime(00,00,00) 

self.timer = QtCore.QTimer() 
self.timer.timeout.connect(self.time) 
self.timer.start(1000) 

def time(self): 
    self.curr_time = self.curr_time.addSecs() 
    self.upTime.setTime(self.curr_time)) 

が必要だと思います。

ここでは常にQtCore.QTime(00,00,00)を使用し、この値を大きくします。

1

あなただけQTimeEditで現在の時間がかかるし、二番目で、それを増やす必要があります。

def time(self): 
    self.upTime.setTime(self.upTime.time().addSecs(1)) 

とアップタイムが始まるたびQTimeEditが正しく初期化されていることを確認します

self.upTime.setTime(QtCore.QTime(0, 0, 0)) 
self.upTime.setDisplayFormat('hh:mm:ss') 
3

{yout time}.addSecs(1)は時刻を変更しませんが、変更された時刻を返します。あなたの{yout time} = {yout time}.addSecs(1)

import sys 

from PyQt5 import QtCore 


def timerEvent(): 
    global time 
    time = time.addSecs(1) 
    print(time.toString("hh:mm:ss")) 


app = QtCore.QCoreApplication(sys.argv) 

timer = QtCore.QTimer() 
time = QtCore.QTime(0, 0, 0) 

timer.timeout.connect(timerEvent) 
timer.start(100) 

sys.exit(app.exec_()) 

出力を使用する必要があります。

00:00:01 
00:00:02 
00:00:03 
00:00:04 
00:00:05 
00:00:06 
00:00:07 
00:00:08 
00:00:09 
00:00:10 
00:00:11 
00:00:12 
関連する問題