@@ -46,7 +46,7 @@ def __init__(
46
46
bins_start .setStepType (QAbstractSpinBox .AdaptiveDecimalStepType )
47
47
bins_start .setRange (- 1e10 , 1e10 )
48
48
bins_start .setValue (0 )
49
- bins_start .setWrapping (True )
49
+ bins_start .setWrapping (False )
50
50
bins_start .setKeyboardTracking (False )
51
51
bins_start .setDecimals (2 )
52
52
@@ -55,6 +55,7 @@ def __init__(
55
55
bins_stop .setStepType (QAbstractSpinBox .AdaptiveDecimalStepType )
56
56
bins_stop .setRange (- 1e10 , 1e10 )
57
57
bins_stop .setValue (100 )
58
+ bins_start .setWrapping (False )
58
59
bins_stop .setKeyboardTracking (False )
59
60
bins_stop .setDecimals (2 )
60
61
@@ -148,13 +149,17 @@ def on_update_layers(self) -> None:
148
149
self .autoset_widget_bins (data = layer_data )
149
150
150
151
# Only allow integer bins for integer data
152
+ # And only allow values greater than 0 for unsigned integers
151
153
n_decimals = 0 if np .issubdtype (layer_data .dtype , np .integer ) else 2
152
- self .findChild (QDoubleSpinBox , name = "bins start" ).setDecimals (
153
- n_decimals
154
- )
155
- self .findChild (QDoubleSpinBox , name = "bins stop" ).setDecimals (
156
- n_decimals
157
- )
154
+ is_unsigned = layer_data .dtype .kind == "u"
155
+ minimum_value = 0 if is_unsigned else - 1e10
156
+
157
+ bins_start = self .findChild (QDoubleSpinBox , name = "bins start" )
158
+ bins_stop = self .findChild (QDoubleSpinBox , name = "bins stop" )
159
+ bins_start .setDecimals (n_decimals )
160
+ bins_stop .setDecimals (n_decimals )
161
+ bins_start .setMinimum (minimum_value )
162
+ bins_stop .setMinimum (minimum_value )
158
163
159
164
def draw (self ) -> None :
160
165
"""
@@ -169,7 +174,7 @@ def draw(self) -> None:
169
174
self .bins_start ,
170
175
self .bins_stop ,
171
176
self .bins_num ,
172
- dtype = int if np . issubdtype ( data .dtype , np . integer ) else float ,
177
+ dtype = data .dtype ,
173
178
)
174
179
175
180
if layer .rgb :
0 commit comments