I’m hoping to improve the qMRMLVolumeWidget based on feedback from several users that I know. There is a common complaint about widgets that inherit functionality from qMRMLVolumeWidget, specifically commonly used qMRMLWindowLevelWidget and qMRMLVolumeThresholdWidget.
There is frequent frustrations regarding the range bounds slider in the popup widget and the values that it chooses to use. Users find it annoying and weird that the primary slider can select values outside of the scalar range of the MRMLVolumeNode that is currently set to the widget. There appears to be some logic that tries to provide some space above and below the min/max of the scalar range. Is there a reason why it was decided to function like this? It appears that setting bounds inside the min max scalar range could help fine tune slider selection, but it doesn’t seem to make sense to support values outside the range of the min max scalar values. When users are changing sliders and nothing is happening due to being outside scalar range, that’s explained as being frustrating. cc: @pieper, @lassoan
The specific code in question is updateRangeForVolumeDisplayNode
. See
Would it be valid to change the current behavior to pin these sliders so the range could never be set lower than the scalar min or greater than the scalar max? Or does this need be a new parameter for this qMRMLVolumeWidget for choosing between desired functionality?