[vtkusers] vtkChartXY, QVTKRenderWindowInteractor, PyQt4
Randy Heiland
heiland at indiana.edu
Sat Jul 23 08:07:24 EDT 2011
If I change the names (SetName) of the arrays, the axes labels on the rendered chart do not change, i.e. they're still "X Axis", "Y Axis". Suggestions?
>>> print vtk.vtkVersion.GetVTKVersion()
5.9.0
thanks, Randy
On Jul 22, 2011, at 10:51 PM, Randy Heiland wrote:
> For the archive, the following seems to do what I need (until it doesn't):
>
> # ------- gui-chart.py ------------
> import sys
> from vtk import *
> from vtk.qt4.QVTKRenderWindowInteractor import QVTKRenderWindowInteractor
> from PyQt4 import Qt
> from PyQt4 import QtGui
>
> class test(Qt.QMainWindow):
> def __init__(self, parent=None):
> Qt.QMainWindow.__init__(self, parent)
> self.setWindowTitle(self.tr("PyQt4 vtkChartXY"))
> self.workspace = Qt.QWorkspace()
> self.setCentralWidget(self.workspace)
> self.frame = QtGui.QFrame(self.workspace)
> self.hbox = QtGui.QHBoxLayout()
>
> self.widget = QVTKRenderWindowInteractor(self.frame)
> self.widget.Initialize()
> self.widget.Start()
>
> self.table = vtkTable()
> self.arrX = vtkFloatArray()
> self.arrX.SetName("X Axis")
> self.table.AddColumn(self.arrX)
>
> self.arrY = vtkFloatArray()
> self.arrY.SetName("Y value")
> self.table.AddColumn(self.arrY)
>
> numPoints = 20
> inc = 7.5 / (numPoints-1)
> self.table.SetNumberOfRows(numPoints)
> for i in range(numPoints):
> self.table.SetValue(i, 0, i * inc)
> self.table.SetValue(i, 1, i * inc)
>
> self.view = vtkContextView()
> self.view.GetRenderer().SetBackground(1.0, 1.0, 1.0)
>
> self.chart = vtkChartXY()
> self.view.GetScene().AddItem(self.chart)
> self.line = self.chart.AddPlot(vtkChart.LINE)
> self.line.SetInput(self.table, 0, 1)
>
> self.ren = self.view.GetRenderer()
> self.renWin = self.widget.GetRenderWindow()
> self.renWin.AddRenderer(self.ren)
>
> self.hbox.addWidget(self.widget)
> self.frame.setLayout(self.hbox)
> self.workspace.addWindow(self.frame)
>
> if __name__ == "__main__":
> app = Qt.QApplication(sys.argv)
> mainwindow = test()
> mainwindow.show()
> sys.exit(app.exec_())
>
> On Jul 22, 2011, at 5:47 PM, Randy Heiland wrote:
>
>> Hi gang,
>>
>> I'm having problems getting a vtkChartXY displayed in PyQt4. I saw a thread related to this (vtkContextView and QWidget), but didn't see a solution for Python-land. I'll include 2 example scripts - the 1st works, the 2nd does not.
>>
>> thanks for any help, Randy
>> <snip>
>
More information about the vtkusers
mailing list