Python Forum
Tkinter Exit Code based on Entry Widget
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Tkinter Exit Code based on Entry Widget
#5
Thanks deanhystad for the extensive help, greatly appreciated. After seeing my code re-written, I need to study this for sure. I added some of the items I thought would be needed and ran the code I posted here. I had to clean up some lines that had syntax errors, so I hope I did that correctly. Now when I run the code, I get no errors but the code just ends without doing anything.

#!/usr/bin/env python3

import enum
import time
import tkinter as tk
import tkinter.ttk as ttk
import RPi.GPIO as GPIO
from tkinter import *


GPIO.setmode(GPIO.BCM)
GPIO.setup(5, GPIO.IN)
GPIO.setup(6, GPIO.IN)

now = time.strftime("%H:%M:%S")
 
class TestState(enum.Enum):
    '''States for testing state machine'''
    Unknown = 0,    # Figure out what the new state should be
    NotReady = 1,   # Need to enter badge number before testing
    Ready = 2,      # Badge entered.  Waiting for test button press
    Testing = 3,    # Running test.
    Completed = 4   # Test completed.  Wait for test button release
 
class App(Frame):
  
    def __init__(self,master=None):
        self.tester = ''
        self.time = ''
        self.label.configure('Test Not Ready')
        self.set_state(TestState.Unknown)
        self.update_clock()
 
    def set_state(self, new_state):
        '''Testing state machine.  See states above'''
        if new_state == TestState.NotReady:
            # Report we are not ready for testing
            self.label.configure('Test Not Ready')
        if new_state == TestState.Ready:
            # Report we are ready for testing
            self.label.configure('Test Ready')
        if new_state == TestState.Testing:
            # Perform the test and report results
            result = ('FAILED', 'PASSED')[GPIO.input(6)]
            self.label.configure(f="blah Test" + {result})
            with open(self.test_file, "a") as f: # open file
                f.write(f='Badge#' + {self.test})
            # Erase test results after 4 seconds
            self.after(4000, lambda: self.set_state(TestState.Completed))
        self.state = new_state
 
    def update_clock(self):
        '''Runs periodically'''
	
        self.tester = self.entry_widget.get()
        self.time = now
        if self.state == TestState.Unknown:
            if len(self.tester) == 0:
                self.set_state(TestState.NotReady)
            else:
                self.set_state(TestState.Ready)
        if self.state == TestState.NotReady:
            # Waiting for tester to enter badge number
            if len(self.tester) > 0:
                self.set_state(TestState.Ready)
        if self.state == TestState.Ready:
            # Waiting for test button.  Can also go to not-ready if 
            if len(self.tester) == 0:
                self.set_state(TestState.NotReady)
            elif GPIO.input(5) == 1:
                self.set_state(TestState.Testing)
        if self.state == TestState.Completed:
            # Begin new test sequence when test button is released
            if GPIO.input(5) == 0:
                self.set_state(TestState.Unknown)
     
        # Update frequently to be responsive to button press
        self.after(100, lambda: self.update_clock)
Reply


Messages In This Thread
RE: Tkinter Exit Code based on Entry Widget - by Nu2Python - Oct-21-2021, 01:03 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  ValueError: could not convert string to float: '' fron Entry Widget russellm44 5 720 Mar-06-2024, 08:42 PM
Last Post: russellm44
  TKinter Widget Attribute and Method Quick Reference zunebuggy 3 870 Oct-15-2023, 05:49 PM
Last Post: zunebuggy
  [Tkinter] entry widget DPaul 5 1,543 Jul-28-2023, 02:31 PM
Last Post: deanhystad
  [Tkinter] The Text in the Label widget Tkinter cuts off the Long text in the view malmustafa 4 4,952 Jun-26-2022, 06:26 PM
Last Post: menator01
  Can't get tkinter button to change color based on changes in data dford 4 3,450 Feb-13-2022, 01:57 PM
Last Post: dford
  [Tkinter] Making entry global in tkinter with multiprocessing luckyingermany 2 2,345 Jan-21-2022, 03:46 PM
Last Post: deanhystad
  [Tkinter] Update variable using tkinter entry methon drSlump 6 5,249 Oct-15-2021, 08:01 AM
Last Post: drSlump
  Tkinter | entry output. Sap2ch 1 2,017 Sep-25-2021, 12:38 AM
Last Post: Yoriz
  auto-generate code for Entry box location snakes 1 1,903 May-07-2021, 08:30 PM
Last Post: Yoriz
  .get() from generated Entry widgets in tkinter snakes 4 4,261 May-03-2021, 11:26 PM
Last Post: snakes

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020