python代码:基于tkinter库和vtk库,首先创建一个背景是白色的窗口renderwindow,点击一个按钮以后窗口的背景颜色可以变成黄色或者红色。
时间: 2024-05-03 18:19:25 浏览: 154
python和pywin32实现窗口查找、遍历和点击的示例代码
请注意,需要安装VTK库和tkinter库才能运行以下代码。
```python
import vtk
import tkinter as tk
from vtk.tk.vtkTkRenderWindowInteractor import vtkTkRenderWindowInteractor
# 创建窗口
root = tk.Tk()
root.geometry("500x500")
root.config(bg="white")
# 创建渲染窗口
renderWindow = vtk.vtkRenderWindow()
renderWindow.SetSize(500, 500)
# 将渲染窗口添加到tkinter窗口中
renderWindowInteractor = vtkTkRenderWindowInteractor(root, rw=renderWindow)
renderWindowInteractor.pack(side="top", fill="both", expand=True)
# 创建一个球体
sphereSource = vtk.vtkSphereSource()
sphereSource.Update()
# 创建一个球体的mapper
mapper = vtk.vtkPolyDataMapper()
mapper.SetInputData(sphereSource.GetOutput())
# 创建一个球体的actor
actor = vtk.vtkActor()
actor.SetMapper(mapper)
# 将actor添加到渲染窗口中
renderer = vtk.vtkRenderer()
renderer.AddActor(actor)
renderWindow.AddRenderer(renderer)
# 定义按钮的回调函数
def change_bg_color(color):
if color == "yellow":
root.config(bg="yellow")
elif color == "red":
root.config(bg="red")
# 创建按钮
yellow_button = tk.Button(root, text="Yellow", command=lambda: change_bg_color("yellow"))
yellow_button.pack(side="left", padx=10, pady=10)
red_button = tk.Button(root, text="Red", command=lambda: change_bg_color("red"))
red_button.pack(side="left", padx=10, pady=10)
# 启动渲染循环
renderWindow.Render()
renderWindowInteractor.Initialize()
renderWindowInteractor.Start()
```
运行以上代码,会得到一个有一个黄色和红色按钮的白色窗口,点击按钮会改变窗口的背景颜色,并且在窗口中显示一个球体。
阅读全文