123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- from threading import Event, Thread
- from time import sleep
- from taipy.gui import Gui, State
- counter = 0
- thread = None
- thread_event = Event()
- def count(event, gui):
- while not event.is_set():
- global counter
- counter = counter + 1
- gui.broadcast_change("counter", counter)
- sleep(2)
- def start_or_stop(state: State):
- global thread
- if thread:
- thread_event.set()
- thread = None
- else:
- thread_event.clear()
- thread = Thread(target=count, args=[thread_event, state.get_gui()])
- thread.start()
-
- state.assign("button_text", button_texts[1 if thread else 0])
- button_texts = ["Start", "Stop"]
- button_text = button_texts[0]
- page = """
- Counter: <|{counter}|>
- Timer: <|{button_text}|button|on_action=start_or_stop|>
- """
- if __name__ == "__main__":
-
-
- Gui.add_shared_variable("button_text")
- Gui(page).run(title="Broadcasting values")
|