• 5925阅读
  • 2回复

[提问]QT计时器 [复制链接]

上一主题 下一主题
离线434440282
 
只看楼主 倒序阅读 楼主  发表于: 2011-04-21
谁能发个简版的计时器代码;点击开始按钮开始计时;点击停止按钮显示经过了多长时间。
类似于马表!代码越简单越好,本人刚刚起步,谢谢大家
离线dbzhang800

只看该作者 1楼 发表于: 2011-04-21
贴个完整程序(不做解释)
  1. import sys
  2. from PySide import QtCore, QtGui
  3. class Widget(QtGui.QWidget):
  4.     def __init__(self, parent=None):
  5.         super(Widget, self).__init__(parent)
  6.         #please use QTime instead of QElapsedTimer if your Qt version lower than 4.7
  7.         self.time = QtCore.QElapsedTimer()
  8.         self.timer = QtCore.QBasicTimer()
  9.         self.lcd = QtGui.QLCDNumber()
  10.         # length of "00:00:00.000"
  11.         self.lcd.setDigitCount(12)
  12.         self.start = QtGui.QPushButton("Start")
  13.         self.stop = QtGui.QPushButton("Stop")
  14.         
  15.         grid = QtGui.QGridLayout(self)
  16.         grid.addWidget(self.lcd, 0, 0, 1, 2)
  17.         grid.addWidget(self.start, 1, 0)
  18.         grid.addWidget(self.stop, 1, 1)
  19.         
  20.         self.start.clicked.connect(self.onStart)
  21.         self.stop.clicked.connect(self.onStop)
  22.         
  23.     def timerEvent(self, evt):
  24.         ms = self.time.elapsed()
  25.         text = "{:02d}:{:02d}:{:02d}.{:03d}".format(ms/3600000, ms/60000, ms/1000, ms%1000)
  26.         self.lcd.display(text)
  27.     def onStart(self):
  28.         self.time.restart()
  29.         self.timer.start(10, self)
  30.         
  31.     def onStop(self):
  32.         self.timer.stop()
  33. app = QtGui.QApplication(sys.argv)
  34. w = Widget()
  35. w.show()
  36. app.exec_()
离线434440282
只看该作者 2楼 发表于: 2011-05-07
回 1楼(dbzhang800) 的帖子
谢谢了  的确是简单明了
快速回复
限100 字节
 
上一个 下一个