SplineEditor (hwx.gui)

Compsite widget to edit a math.Spline


  • A Table on the left to enter the X, Y values
  • A Plot on the left to visualize and drag the values
  • Buttons on the top of the table to add/insert/remove values and read/write csv

Like other widgets you can specify a command parameter that is a method that gets called when the spline changes.


Public Methods

clearSelection (self)
createContents (self)
decorateContents (self)
deleteSelected (self)
enableDragAndDrop (self, *widgets)
getSelectedRows (self)
layoutContents (self)
okToDrop (self, fname)
onDrop (self, fname)
onPlotSelected (self, points)
onSplineModified (self, selectRow=None, fitPlot=’selected’)
onTableSelected (self, rows)
readCsv (self, fname=None)
selectRow (self, row)
setSpline (self, spline, clearSelection=True, fitPlot=True)
writeCsv (self, fname=None)

Property Details


The interpolation method.


The number of samples to generate.


The spline object.

Method Details


Unselects all table rows and plot points.


Creates the contents for the SplineEditor.


Called when cells from the table are selected so we can disable the the delete button if needed.


Called if the user hits the <Del> key or clicks the delete button to delete the selected points.

enableDragAndDrop(self, *widgets)

Enables dragging and dropping of csv file into the SplineEditor.

param widgets:The widgets to be enabled drag and drop.
type widgets:collection

Returns a list of indices of the selected rows.


Creates the layout for the SplineEditor.

okToDrop(self, fname)

Returns if the file dropped is a csv file.

param fname:CSV file path.
type fname:str
returns:True if the file to dropped is a csv file, otherwise False
onDrop(self, fname)

Reads the csv file on drop.

param fname:CSV file path.
type fname:str
onPlotSelected(self, points)

Called when user selects points in the plot to select the corresponding table rows.

param points:The selected from user points in the plot.
type points:Union[Point, list[Point]]
onSplineModified(self, selectRow=None, fitPlot='selected')

Called when the the spline changes, that happens when:

  • A table cell value was changed.
  • A plot point was modified (mouse up, not drag).
  • One of the buttons was clicked.
param selectRow:
 The row index to select the modified spline from the table.
type selectRow:int
param fitPlot:The points of the plot to fit.
type fitPlot:str
onTableSelected(self, rows)

Called when user selects cells in the table to select the corresponding plot points.

param rows:The selected row or list of row indices from the table.
type rows:Union[int, list[int]]
readCsv(self, fname=None)

Reads spline data from a csv file.

param fname:The CSV file path.
type fname:str
selectRow(self, row)

Selects the table row and plot point for the specified row.

param row:A single index of the table or list of indices.
type row:Union[int, list]
setSpline(self, spline, clearSelection=True, fitPlot=True)

Sets the specified spline in SplineEditor table and plot.

param spline:The spline containing x/y values to be set.
type spline:Spline
param clearSelection:
 Determines whether to remove selection from the SplineEditor.
type clearSelection:
 bool, optional
param fitPlot:Determines whether to fit the plot inside SplineEditor plot.
type fitPlot:bool, optional
writeCsv(self, fname=None)

Writes a csv file containing the values.

param fname:CSV file path.
type fname:str