progress_bar.xml 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <class name="ProgressBar">
  2. <relationships>
  3. <inheritance class="SCCDWidget" priority="0"/>
  4. <inheritance class="ttk.Progressbar" priority="1"/>
  5. <association name="parent" class="A"/>
  6. </relationships>
  7. <constructor>
  8. <parameter name="params"/>
  9. <super class="ttk.Progressbar">
  10. <parameter expr="params['parent']"/>
  11. <parameter expr="**({'orient': tk.HORIZONTAL})"/>
  12. </super>
  13. <super class="SCCDWidget"/>
  14. <body>
  15. self.value = tk.DoubleVar()
  16. self.configure(variable=self.value)
  17. </body>
  18. </constructor>
  19. <destructor>
  20. <body>
  21. self.destroy()
  22. </body>
  23. </destructor>
  24. <scxml initial="root">
  25. <state id="root" initial="initializing">
  26. <state id="initializing">
  27. <transition target="../ready">
  28. <raise event="tk_widget" scope="narrow" target="'parent'">
  29. <parameter expr="self"/>
  30. </raise>
  31. </transition>
  32. </state>
  33. <state id="ready">
  34. <transition event="update_status" target=".">
  35. <parameter name="value"/>
  36. <parameter name="text"/>
  37. <script>
  38. #TODO update text as well
  39. self.value.set(value)
  40. print("%s percent -- %s" % (self.value.get(), text))
  41. </script>
  42. </transition>
  43. <transition event="start" target="../indeterminate">
  44. <script>
  45. self.configure(mode="indeterminate")
  46. print("Set indeterminate")
  47. </script>
  48. </transition>
  49. </state>
  50. <state id="indeterminate">
  51. <transition event="stop" target="../ready"/>
  52. <transition after="0.05" target=".">
  53. <script>
  54. self.value.set(self.value.get() + 3)
  55. </script>
  56. </transition>
  57. </state>
  58. </state>
  59. </scxml>
  60. </class>