Contents

#
# pyvista_widget.ipynb
#
from qtdraw.util.qt_event_util import get_qt_application
from qtdraw.core.pyvista_widget import create_qtdraw_file, PyVistaWidget

# callback function to draw all objects.
def draw(widget: PyVistaWidget):
    widget.update_preference("label","default_check",True)

    widget.add_site(position="[0,0,0]", label="site")
    widget.add_bond(position="[3,0,0]", label="bond")
    widget.add_vector(position="[6,0,0]", label="vector")
    widget.add_orbital(position="[0,3,0]",size=0.7, label="orbital")
    widget.add_stream(position="[3,3,0]", size=0.7, label="stream")
    widget.add_line(position="[6,3,0]", label="line", arrow1=True, arrow2=True)
    widget.add_plane(position="[0,6,0]", label="plane")
    widget.add_circle(position="[3,6,0]", label="circle")
    widget.add_torus(position="[6,6,0]", label="torus")
    widget.add_ellipsoid(position="[0,0,5]", label="ellipsoid")
    widget.add_toroid(position="[3,0,5]", label="toroid")
    widget.add_box(position="[6,0,5]", label="box")
    widget.add_polygon(position="[0,3,5]", label="polygon")
    widget.add_spline(position="[3,3,5]", label="spline", arrow1=True)
    widget.add_spline_t(position="[6,3,5]", label="spline_t", arrow1=True)
    widget.add_text3d(position="[0,6,5]", label="text3d")
    widget.add_caption(position="[[3,6,5],[6,6,5]]",caption="[cap. 1,cap. 2]")
    widget.add_text2d(caption="text2d")

    widget.add_plane(position="[3,3,-0.3]",x_size=10,y_size=10,opacity=0.1)
    widget.add_plane(position="[3,3,4.7]",x_size=10,y_size=10,opacity=0.1)

    widget.set_view()

# === example 1 (create qtdw file as background) ===
def ex1():
    create_qtdraw_file(filename="example_output.qtdw", callback=draw)

# === example 2 (create widget) ===
def ex2():
    get_qt_application() # create Qt event loop.
    widget = PyVistaWidget() # create PyVista widget.
    draw(widget) # draw all objects.
    widget.show() # show widget.

# ex1()
ex2()