input_box.py 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. """Start typing a color name for the mesh.
  2. E.g.: pink4
  3. (Press 'Esc' to exit)"""
  4. from vedo import settings, dataurl, get_color_name
  5. from vedo import Plotter, Mesh, Text2D
  6. def kfunc(evt):
  7. key = evt.keypress.lower()
  8. field_txt = field.text().strip() # strip leading/trailing spaces
  9. if key == "backspace" and field_txt:
  10. key = ""
  11. field_txt = field_txt[:-1]
  12. elif key == "escape":
  13. plt.close()
  14. return
  15. elif len(key) > 1:
  16. return
  17. color_name = field_txt + key
  18. field.text(f"{color_name:^12}").frame(color_name, lw=8)
  19. mesh.color(color_name)
  20. msg.text(get_color_name(color_name))
  21. plt.render()
  22. settings["enable_default_keyboard_callbacks"] = False
  23. mesh = Mesh(dataurl+"magnolia.vtk").color("black").flat()
  24. field = Text2D("black", pos="bottom-center",s=3, font="Meson", bg="k2", c="w", alpha=1)
  25. msg = Text2D(pos="top-right", s=2, font="Quikhand", c="k1", bg="k7", alpha=1)
  26. plt = Plotter()
  27. plt.add_callback("key press", kfunc)
  28. plt.show(mesh, field, msg, __doc__).close()