using でタイム カウンターを実行し、この時間python
を usingで表示しようとしています。この時間の形式を使用して、プログラムが動作し始めてから経過した時間を示すために、これを行う必要があります。のドキュメントを読んで、インターネットで検索した別のコードを試しましたが、うまくいきません。QTime
QLabel
PyQt
00:00:00
QTime
これは私のコードの一部です:
class MyApplication(QtGui.QApplication):
def __init__(self, *args, **kwargs):
super(MyApplication, self).__init__(*args, **kwargs)
self.t = QTime() #I start QTime at the same time
self.t.start() # the program starts.
self.label_1 = QtGui.QLabel("Time since the program started:")
self.time_label = QtGui.QLabel("00:00:00")
self.tmr = QTimer() #I use QTimer because I need it
#for another part of the code
self.tmr.timeout.connect(self.clock)
def clock(self):
self.m = 0
self.elapsed = self.t.elapsed()
self.s = int((self.elapsed)/1000)
if self.s == 60:
self.m += 1
self.s = 0
self.time_sec = str(self.s)
self.time_min = str(self.m)
self.time = self.time_min + ":" + self.time_sec
self.time_label.setText(self.time) #I show the time in this QLabel()
これをビルドすると、この形式の時間: が得られ0:0
、60 秒後 (秒が表示されます)、この結果: が得られ1:0
ます。他には何も起こりません。
この形式で必要な時間カウンターを作成するにはどうすればよいですか: 00:00:00
. を使用して実行できますQTimer
か? あなたが私を助けてくれることを願っています。
- - - 編集 - - -
@amicitas と @linusg の回答のおかげで、datetime
モジュールを試して、次の簡単なコードを書きました。
class MyApplication(QtGui.QApplication):
def __init__(self, *args, **kwargs):
super(MyApplication, self).__init__(*args, **kwargs)
self.t0 = datetime.now()
self.tmr = QTimer()
self.tmr.timeout.connect(self.clock)
def.clock(self):
self.t1 = datetime.now()
self.hour = self.t1.hour - self.t0.hour
self.minute = self.t1.minute - self.t0.minute
self.second = self.t1.second - self.t0.second
print self.hour, self.minute, self.second
でも、これを作ってみると、カウンターが45秒になった瞬間、45から-15になって「1分」と表示されます。これは:
に達する0:0:44
と に変わり0:1:-15
ます。
何が問題なのですか?また、必要な時間形式を表示するにはどうすればよいですか? これは00:00:00
。あなたが私を助けてくれることを願っています。