How many times it was pressed the button - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: Homework (https://python-forum.io/forum-9.html) +--- Thread: How many times it was pressed the button (/thread-20480.html) |
How many times it was pressed the button - chano - Aug-13-2019 Hello, I have a few buttons and I want to understand how many times they push these buttons, can it write in a file and it send via email this file every day.Is it possible? Thank you RE: How many times it was pressed the button - jefsummers - Aug-13-2019 Yes, it is possible. The flow and techniques involved will depend on what GUI you are using, but in general something like: 1. On program start, read the file, which contains date and number info 2. If the date is new, transmit yesterday's total. 3. Record the presses 4. On close, write the totals back to the file (adding prior totals if this is not a new day) RE: How many times it was pressed the button - DeaD_EyE - Aug-13-2019 You can even use real switches with Raspberry Pi. In this case you'll find many tutorials for Python. In the case of real switches the bounce time is very important. I guess you would it do with a GUI. Tkinter is shipped with Python. from tkinter import ( Tk, Button, Label, IntVar, ) def count(): variable.set(variable.get() + 1) root = Tk() variable = IntVar(root) Button(root, text='Push Counter', command=count).pack() Label(root, textvariable=variable).pack() Button(root, text='Exit', command=root.destroy).pack() root.mainloop()You can extend the code with one function to save the data in a file. The command is a callable function, which is called, when the button was pressed. For example the exit button calls root.destroy() which kills all children and the root (GUI closes). RE: How many times it was pressed the button - chano - Aug-15-2019 Hello, This is a sample button,i am a beginner in python and tkinter,can you help me with this code,if is possible i want like push button 10 times it write in file and send to my email,every day,this is mashine for water and i want to know how much is pushing the buttons,i have two buttons for warm and cool water.if you can help me и will be very grateful. import tkinter as tk from tkinter import * import smtplib from tkinter import Tk, Toplevel, Button import RPi.GPIO as GPIO import time import tkinter.ttk as ttk from tkinter.ttk import Progressbar, Style, Button master1 =Toplevel() master3 =Toplevel() ##################################right master1.minsize(150,150+170+170) master1.geometry("185x1000+0+0") master1.configure(background="black",) master1.title("2") master1.overrideredirect(True) #################################left master3.label = tk.Label(master3, text='this is OK') master3.label.pack() def text_1_2(): b2() nadpisok() ########################## def nadpisok(): print('Button clicked') master3.label['text'] = 'please wait' master3.button['state'] = 'disabled' master3.after(3000, master.delayed_textok) def delayed_textok(): master3.label['text'] = 'this is OK' master3.button['state'] = 'normal' master3.after(3000, master.finhished) ########################################### GPIO.setwarnings(False) ######################################### def b2(): GPIO.setmode(GPIO.BCM) RELAIS_2_GPIO = 10 GPIO.setup(RELAIS_2_GPIO, GPIO.OUT) GPIO.output(RELAIS_2_GPIO, GPIO.HIGH) time.sleep(0.35) GPIO.output(RELAIS_2_GPIO, GPIO.LOW) time.sleep(0.35) ######################################### image2 = tk.PhotoImage(file="") b = button = tk.Button(master1,image=image2, height=80, width=160,background="red",font="0",bd=10,fg="black",command= text_1_2) b.place(x = 0, y = 120) label2=Label(master1,text="",height=0, width=0,bg="#100C19",font="Times 13 underline",fg="white",relief="solid",bd=0).place(x=0,y=200) ######################### master.mainloop() GPIO.cleanup() probably it is pretty complex code.. RE: How many times it was pressed the button - chano - Aug-20-2019 (Aug-13-2019, 02:54 PM)jefsummers Wrote: Yes, it is possible. The flow and techniques involved will depend on what GUI you are using, but in general something like: 1. On program start, read the file, which contains date and number info 2. If the date is new, transmit yesterday's total. 3. Record the presses 4. On close, write the totals back to the file (adding prior totals if this is not a new day) this is quite difficult for me.. |