1
0

broadcast_change.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. # Copyright 2021-2025 Avaiga Private Limited
  2. #
  3. # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
  4. # the License. You may obtain a copy of the License at
  5. #
  6. # http://www.apache.org/licenses/LICENSE-2.0
  7. #
  8. # Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
  9. # an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
  10. # specific language governing permissions and limitations under the License.
  11. # -----------------------------------------------------------------------------------------
  12. # To execute this script, make sure that the taipy-gui package is installed in your
  13. # Python environment and run:
  14. # python <script>
  15. # -----------------------------------------------------------------------------------------
  16. # Demonstrate how to invoke a callback for different clients.
  17. # This application creates a thread that, every second, invokes a callback for every client
  18. # so the current time may be updated, under a state-dependant condition.
  19. # -----------------------------------------------------------------------------------------
  20. from datetime import datetime
  21. from threading import Thread
  22. from time import sleep
  23. from taipy.gui import Gui
  24. # The function that executes in its own thread.
  25. # Update the current time every second.
  26. def update_time(gui):
  27. while True:
  28. gui.broadcast_change("current_time", datetime.now())
  29. sleep(1)
  30. current_time = datetime.now()
  31. page = """
  32. Current time is: <|{current_time}|format=HH:mm:ss|>
  33. """
  34. if __name__ == "__main__":
  35. gui = Gui(page)
  36. # Run thread that regularly updates the current time
  37. thread = Thread(target=update_time, args=[gui], name="clock")
  38. thread.daemon = True
  39. thread.start()
  40. gui.run(title="Broadcast - Change")