1
Ниже приведено код QLabel
и начинается обратный отсчет. Каждую секунду он печатает текущее время и сколько секунд осталось.Как создать обратный отсчет с Qt
Помимо печати текущего времени (Time сейчас) Я хотел бы напечатать какое время он будет, когда отсчет дошел до конца. Таким образом, полученное сообщение будет выглядеть так:
"Time now: 20:00:01. Countdown ends at: 20:00:16"
Как его достичь?
import datetime
from PyQt4 import QtGui, QtCore
app = QtGui.QApplication([])
label = QtGui.QLabel()
label.resize(360, 40)
label.show()
count = 15
def countdown():
global count
if count < 1:
count = 15
label.setText('Time now: %s. Seconds left: %s'%(datetime.datetime.now().strftime("%H:%M:%S"), count))
count = count - 1
timer = QtCore.QTimer()
timer.timeout.connect(countdown)
timer.start(1000)
app.exec_()
Рабочий раствор:
(благодаря eyllanesc):
import datetime
from PyQt4 import QtGui, QtCore
app = QtGui.QApplication([])
label = QtGui.QLabel()
label.resize(360, 40)
label.show()
count = 15
def countdown():
global count
if count < 1:
count = 15
now = datetime.datetime.now()
label.setText('Time now: %s. End time: %s. Seconds left: %s'%(now.strftime("%H:%M:%S"), (now + datetime.timedelta(seconds=count)).strftime("%H:%M:%S"), count))
count = count - 1
interval = 1200
timer = QtCore.QTimer()
timer.timeout.connect(countdown)
timer.start(1000)
app.exec_()
Отличная работа и отображение только отличий;) – Schollii
Приятно видеть ответы, которые вписываются в мое окно браузера. Вся эта прокрутка заставляет меня устать :) – ekhumoro