我正在编写一个 python 脚本,它需要一个 VTI 文件并使用 pyvista 绘制数据。在当前状态下(单击 tkinter 上的按钮),它将运行脚本并在新窗口中使用 pyvista 绘制我的数据。我试图实现的是在 tkinter winow 中显示来自 pyvista 的情节。有没有办法做到这一点?
问问题
611 次
1 回答
2
是的,但这并不容易。
首先,您需要构建具有 TK 支持的 VTK。请参阅此处的冗长讨论以了解如何操作:https ://discourse.vtk.org/t/error-importing-vtktkrenderwindowinteractor-in-vtk-8-2-0/856
接下来,vtk==8.2.0
在vtkLoadPythonTkWidgets.py
. vtkCommonCorePython
替换文件中的所有实例vtk
。
完成后,您可以在其中使用pyvista
绘图仪对象tkinter
:
import tkinter
import pyvista
from vtk.tk.vtkTkRenderWindowInteractor import vtkTkRenderWindowInteractor
# Setup for root window
root = tkinter.Tk()
root.title("pyvista tk Demo")
frame = tkinter.Frame(root)
frame.pack(fill=tkinter.BOTH, expand=1, side=tkinter.TOP)
# create an instance of a pyvista.Plotter to be used for tk
mesh = pyvista.Sphere()
pl = pyvista.Plotter()
pl.add_mesh(mesh)
# Setup for rendering window interactor
renwininteract = vtkTkRenderWindowInteractor(root, rw=pl.ren_win,
width=400, height=400)
renwininteract.Initialize()
renwininteract.pack(side='top', fill='both', expand=1)
renwininteract.Start()
# Begin execution by updating the renderer and starting the tkinter
# loop
pl.render()
root.mainloop()
于 2020-05-27T05:22:49.963 回答