Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 29, 2023 04:36:36

BCnuHy
Зарегистрирован: 2022-11-30
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

функция накопления значения

Требуется, чтобы при нажатии на кнопку, программа высчитывала время между нажатиями и суммировала его в отдельной переменной

 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_())

Офлайн

#2 Янв. 29, 2023 10:02:44

Genabox
Зарегистрирован: 2022-12-24
Сообщения: 198
Репутация: +  1  -
Профиль   Отправить e-mail  

функция накопления значения

а какой тебе формат суммированного времени нужен?

Офлайн

#3 Янв. 29, 2023 10:06:15

BCnuHy
Зарегистрирован: 2022-11-30
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

функция накопления значения

Genabox
а какой тебе формат суммированного времени нужен?
Int. Целое число. Простое количество секунд

Офлайн

#4 Янв. 29, 2023 10:16:03

Genabox
Зарегистрирован: 2022-12-24
Сообщения: 198
Репутация: +  1  -
Профиль   Отправить e-mail  

функция накопления значения

да мы как раз сегодня ночью эту тему обговаривали…..
там 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 форман(он же стринг)

Отредактировано Genabox (Янв. 29, 2023 10:30:29)

Офлайн

#5 Янв. 30, 2023 03:32:59

BCnuHy
Зарегистрирован: 2022-11-30
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

функция накопления значения

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

И так далее

Отредактировано BCnuHy (Янв. 30, 2023 03:34:15)

Офлайн

#6 Янв. 30, 2023 10:54:43

Genabox
Зарегистрирован: 2022-12-24
Сообщения: 198
Репутация: +  1  -
Профиль   Отправить e-mail  

функция накопления значения

Функция timer не подойдёт.
таймер это конунтер
тебе после суток еще и дату придется отслеживать можду 12 для и 12 дня

Офлайн

#7 Янв. 30, 2023 11:00:14

BCnuHy
Зарегистрирован: 2022-11-30
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

функция накопления значения

Genabox
таймер это конунтер
тебе после суток еще и дату придется отслеживать можду 12 для и 12 дня
Отсчёт системного времени идёт в секундах от начала эпохи. Я могу вытащить оттуда и день и год, всё что захочу. Так что смена суток вообще не показатель

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version