Просто для полноты и для других пользователей, гуглящих.
vtkSliderWidget будет делать то, что вы хотите, если вам нужно установить значение.
// редактировать на основе вашего редактированияЧтобы получить значение, вы должны подключить событие к ползунку, который срабатывает при изменении значения.Затем извлеките это значение и обновите соответственно.Пример на C ++ найден здесь
// Я на самом деле думаю, что моя проблема в том, что функция обратного вызова вызывается для каждой позиции большого пальца, когда я ее сдвигаю.Как можно избежать этого?Другими словами, я хочу, чтобы только последняя позиция вызывала функцию обратного вызова ...
Попробуйте связать ее с EndInteractionEvent, а не с InteractionEvent.
SliderWidget.AddObserver("EndInteractionEvent", vtkSliderCallback2)
// stuff
Кстати, если вы используете python и VTK и вам нужны GUI вещи, я советую вам использовать Python QT и python qt виджеты, которые облегчают многоэта штука.Некоторый код одного из моих старых проектов, использующих QT + Python + VTK для GUI + Python:
self.verticalSlider = QtGui.QSlider(self.centralwidget)
self.verticalSlider.setOrientation(QtCore.Qt.Vertical)
self.verticalSlider.setObjectName("verticalSlider")
self.horizontalLayout.addWidget(self.verticalSlider)
// connect slider to a method onValueChange
QObject.connect(self.verticalSlider, SIGNAL("valueChanged(int)"),
self.setFibreVolumeOpacity)
def setFibreVolumeOpacity(self, value):
// do stuff here with slider value.