Need help ignoring button press. Tkinter
<p>I am working on making a stopwatch program. I can't get the start button to do nothing if the timer is already running. </p>

<p>When I search, I see the same <a href="http://code.activestate.com/recipes/124894-stopwatch-in-tkinter/" rel="nofollow">14 year old code</a>. I'd find it hard to believe that all these individuals in the past 14 years have independently arrived at the same solution. </p>

<p>As a beginner, I'd really like to know what I'm doing wrong with what I've written instead of copy/pasting and moving on. </p>

<pre><code>from tkinter import *
import time
import datetime


class Window(Frame):

    def __init__(self, master = None):
        Frame.__init__(self, master)

        self.master = master

        self.init_window()

    def init_window(self):

        self.master.title('Stopwatch')

        self.pack(fill=BOTH, expand=1)

        quit_button = Button(self, text = 'Quit', command = self.client_exit)
        quit_button.config(width = 9)
        quit_button.place(x=230)

        start_button = Button(self, text = 'Start', command = self.timer_start)
        start_button.config(width= 10)
        start_button.place(x=0, y=0)

        stop_button = Button(self, text = 'Stop', command = self.timer_stop)
        stop_button.config(width = 10)
        stop_button.place(x=80)

        reset_button = Button(self, text = 'Reset', command = self.timer_reset)
        reset_button.config(width = 10)
        reset_button.place(x=160)

        self.is_timer_running = False

    def client_exit(self):
        exit()

    def timer_start(self):
        global sec1
        sec1 = time.time()
        if self.is_timer_running == False:
            self.is_timer_running = True
            def tick():
                if self.is_timer_running == True:
                    sec = time.time()
                    sec = datetime.timedelta(seconds = sec - sec1)
                    clock['text'] = sec
                    clock.after(100, tick)
            tick()

    def timer_stop(self):
        stop_time = time.time()
        if self.is_timer_running == True:
            self.is_timer_running = False
            def tick_stop():
                stop = datetime.timedelta(seconds = stop_time - sec1)
                clock['text'] = stop
            tick_stop()

    def timer_reset(self):
        self.is_timer_running = False
        clock['text'] = '00:00:00'
</code></pre>

<p>Set the state of the button to disabled immediately after it's clicked (make sure to update it), and then set it back to normal when the timer stops running.</p>

<pre><code>start_button.config(state = 'disabled')
start_button.update()

# do whatever you need to do i.e run the stop watch

start_button.update()
start_button.config(state = 'normal') 
</code></pre>

<p>And thanks to @NickBonne for further clarification :)</p>

<blockquote>
  <p>You need to add <code>self.start_button = start_button</code> and <code>self.stop_button = stop_button</code> in <code>init_window()</code>. Then you can use <code>self.start_button.config(state="disabled")</code></p>
</blockquote>

python