Найти - Пользователи
Полная версия: функция накопления значения
Начало » Python для новичков » функция накопления значения
1
BCnuHy
Требуется, чтобы при нажатии на кнопку, программа высчитывала время между нажатиями и суммировала его в отдельной переменной
 import time
import tkinter
import pandas as pd
from PyQt5 import uic, QtCore, QtGui, QtWidgets, QtTest
#Создание переменной с текущим временем от начала эпохи:
qtime = stime = int(time.time())
print(qtime)
    def bt_push(self):
        global stime
        ptime = int(time.time())
        gtime = ptime - stime
        ftme += gtime() #<----Вот здесь попытался реализовать переменную-накопитель
        print(ftime)
        stime = ptime
#Создание главного окна:
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(1200, 800) #1200, 800
        MainWindow.setToolTipDuration(-5)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        #Кнопки:
        #Перерыв:
        self.bt_pereriv = QtWidgets.QPushButton(self.centralwidget)
        self.bt_pereriv.setGeometry(QtCore.QRect(180, 120, 180, 70))
        font = QtGui.QFont()
        font.setPointSize(12)
        font.setBold(False)
        font.setWeight(50)
        self.bt_pereriv.setFont(font)
        self.bt_pereriv.setAutoFillBackground(False)
        self.bt_pereriv.setCheckable(True)
        self.bt_pereriv.setAutoExclusive(True)
        self.bt_pereriv.setObjectName("bt_pereriv")
MainWindow.setCentralWidget(self.centralwidget)
    #Нажатие кнопок:
        self.retranslateUi(MainWindow)
        #Перерыв:
        self.bt_pereriv.pressed.connect(self.bt_push)
if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())
Genabox
а какой тебе формат суммированного времени нужен?
BCnuHy
Genabox
а какой тебе формат суммированного времени нужен?
Int. Целое число. Простое количество секунд
Genabox
да мы как раз сегодня ночью эту тему обговаривали…..
там 2 способа
объяви переменные и вызывай функуию начало - отсчет времени
пиши ее например в переменную старт
создай вторую переменную и все время ее обновляй slavetime наример
во время между нажатиями кнопки

а когда нажимаешь стоп выхватываешь время из slavetime и сравниваешь со старт
это если у тебя текущее время типа 12:10:11 старт и 12: 12: 10 стоп
 now = datetime.now()
_now = now - now 
_now2 = datetime.now()
time =now2 - now
—–
или таймер 440908 fms: 2 hr | 2 min | 26 sec | 25 ms там даже милисекунды есть
я вчера вечером писал%) вот смотри какой тут форум хороший
утром ты задаешь вопрос а вчера вечером тебе решение пишут…….
http://python.su/forum/topic/42460/?page=2

Int. Целое число
обычно это или стринг или datetime time форман(он же стринг)
BCnuHy
Genabox
да мы как раз сегодня ночью эту тему обговаривали…..там 2 способаобъяви переменные и вызывай функуию начало - отсчет временипиши ее например в переменную стартсоздай вторую переменную и все время ее обновляй slavetime наример во время между нажатиями кнопки а когда нажимаешь стоп выхватываешь время из slavetime и сравниваешь со стартэто если у тебя текущее время типа 12:10:11 старт и 12: 12: 10 стоп
Не подойдёт. У меня кнопок - 7 штук. Нажиматься могут разные. Не нажиматься могут по несколько часов подряд. Функция таймер зависит от производительности системы и в таком разбеге может выдавать не точную инфу на слабом железе, а прога будет работать на самых дешёвых планшетах.
Так что путь один - выхватывать системное время и рассчитывать всё из него. Функция timer не подойдёт.
Прога работает хорошо без суммирования времени. То есть, если убрать строку
 ftime += gtime
- всё работает. Прога считает количество секунд между нажатиями на кнопки.
Осталось суммировать результат. Типа так:
Нажатие - 10 сек | Сумма - 10 сек
Нажатие - 8 сек | Сумма - 18 сек
Нажатие - 3 сек | Сумма - 21 сек

И так далее
Genabox
Функция timer не подойдёт.
таймер это конунтер
тебе после суток еще и дату придется отслеживать можду 12 для и 12 дня
BCnuHy
Genabox
таймер это конунтер
тебе после суток еще и дату придется отслеживать можду 12 для и 12 дня
Отсчёт системного времени идёт в секундах от начала эпохи. Я могу вытащить оттуда и день и год, всё что захочу. Так что смена суток вообще не показатель
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB