mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
51 lines
1.6 KiB
Python
51 lines
1.6 KiB
Python
#!/usr/bin/env python
|
|
from PyQt4 import QtCore
|
|
from PyQt4 import QtGui
|
|
from PyQt4 import uic
|
|
from vtk import *
|
|
import sys
|
|
|
|
# Create a PyQt window using a .ui file generated with Qt Designer ...
|
|
application = QtGui.QApplication(sys.argv)
|
|
|
|
window = uic.loadUi("gui.ui")
|
|
vertex_slider = window.findChild(QtGui.QSlider, "vertexCount")
|
|
edge_slider = window.findChild(QtGui.QSlider, "edgeCount")
|
|
|
|
# Create a simple pipeline source ...
|
|
source = vtkRandomGraphSource()
|
|
source.SetNumberOfVertices(vertex_slider.value())
|
|
source.SetNumberOfEdges(edge_slider.value())
|
|
source.SetStartWithTree(True)
|
|
|
|
# Define event-handlers that update the pipeline in response to widget events ...
|
|
def change_vertex_count(count):
|
|
source.SetNumberOfVertices(count)
|
|
edge_slider.setValue(source.GetNumberOfEdges())
|
|
view.GetRenderer().ResetCamera()
|
|
render_window.Render()
|
|
|
|
def change_edge_count(count):
|
|
source.SetNumberOfEdges(count)
|
|
edge_slider.setValue(source.GetNumberOfEdges())
|
|
view.GetRenderer().ResetCamera()
|
|
render_window.Render()
|
|
|
|
# Connect the GUI widgets to the event-handlers ...
|
|
QtCore.QObject.connect(vertex_slider, QtCore.SIGNAL("valueChanged(int)"), change_vertex_count)
|
|
QtCore.QObject.connect(edge_slider, QtCore.SIGNAL("valueChanged(int)"), change_edge_count)
|
|
window.show()
|
|
|
|
# Setup a VTK view ...
|
|
view = vtkGraphLayoutView()
|
|
view.AddRepresentationFromInputConnection(source.GetOutputPort())
|
|
|
|
view.GetRenderWindow().SetSize(600, 600)
|
|
|
|
# This initializes the VTK window for interaction, but doesn't start an event-loop ...
|
|
view.GetRenderWindow().Start()
|
|
|
|
# Start the Qt event-loop ...
|
|
application.exec_()
|
|
|