首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法集成Pyvista和tkinter?

有没有办法集成Pyvista和tkinter?
EN

Stack Overflow用户
提问于 2020-03-12 15:51:07
回答 1查看 499关注 0票数 1

我正在编写一个python脚本,它获取一个VTI文件,并使用pyvista绘制数据。在当前状态下(单击tkinter上的按钮),它将运行一个脚本,并在新窗口中使用pyvista绘制我的数据。我想要实现的是在tkinter winow中显示pyvista中的情节。有没有办法做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2020-05-27 13:22:50

是的,但这并不容易。

首先,您需要构建具有TK支持的VTK。有关如何做到这一点,请参阅此处的冗长讨论:https://discourse.vtk.org/t/error-importing-vtktkrenderwindowinteractor-in-vtk-8-2-0/856

接下来,vtkLoadPythonTkWidgets.py中的vtk==8.2.0有一个bug。将文件中的所有vtkCommonCorePython实例替换为vtk

完成后,下面介绍如何在tkinter中使用pyvista绘图仪对象

代码语言:javascript
复制
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()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60649673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档