Repository: napari/napari

Issue:
QSpinBox import missing in Labels layer controls
## 🐛 Bug

I think the QSpinbox import was accidentally removed from the labels layer controls in #2608 . There is a remaining QSpinBox for the ndim attribute.


https://github.com/napari/napari/blob/ad752649a44debc928d4a8c48527e96f5220a495/napari/_qt/layer_controls/qt_labels_controls.py#L115

## To Reproduce

Steps to reproduce the behavior:

1. Run the `add_labels.py` example

```python
Traceback (most recent call last):
  File "/Users/kyamauch/Documents/napari/examples/add_labels.py", line 30, in <module>
    label_layer = viewer.add_labels(label_image, name='segmentation')
  File "<string>", line 5, in add_labels
  File "/Users/kyamauch/opt/miniconda3/envs/napari/lib/python3.7/_collections_abc.py", line 971, in append
    self.insert(len(self), value)
  File "/Users/kyamauch/Documents/napari/napari/components/layerlist.py", line 85, in insert
    super().insert(index, new_layer)
  File "/Users/kyamauch/Documents/napari/napari/utils/events/containers/_selectable_list.py", line 63, in insert
    super().insert(index, value)
  File "/Users/kyamauch/Documents/napari/napari/utils/events/containers/_evented_list.py", line 179, in insert
    self.events.inserted(index=index, value=value)
  File "/Users/kyamauch/Documents/napari/napari/utils/events/event.py", line 573, in __call__
    self._invoke_callback(cb, event)
  File "/Users/kyamauch/Documents/napari/napari/utils/events/event.py", line 599, in _invoke_callback
    cb_event=(cb, event),
  File "/Users/kyamauch/Documents/napari/napari/utils/events/event.py", line 593, in _invoke_callback
    cb(event)
  File "/Users/kyamauch/Documents/napari/napari/_qt/layer_controls/qt_layer_controls_container.py", line 118, in _add
    controls = create_qt_layer_controls(layer)
  File "/Users/kyamauch/Documents/napari/napari/_qt/layer_controls/qt_layer_controls_container.py", line 49, in create_qt_layer_controls
    return controls(layer)
  File "/Users/kyamauch/Documents/napari/napari/_qt/layer_controls/qt_labels_controls.py", line 115, in __init__
    ndim_sb = QSpinBox()
NameError: name 'QSpinBox' is not defined

Process finished with exit code 1
```

<!-- If you have a code sample, error messages, stack traces, please provide it here as well -->

## Expected behavior

<!-- A clear and concise description of what you expected to happen. -->

## Environment

napari: 0.4.3.dev241+g0b1bdac.d20210412
Platform: Darwin-19.6.0-x86_64-i386-64bit
System: MacOS 10.15.7
Python: 3.7.9 (default, Aug 31 2020, 07:22:35) [Clang 10.0.0 ]
Qt: 5.15.2
PyQt5: 5.15.2
NumPy: 1.19.5
SciPy: 1.6.0
Dask: 2020.12.0
VisPy: 0.6.6

OpenGL:
- GL version: 2.1 INTEL-14.7.12
- MAX_TEXTURE_SIZE: 16384

Screens:
- screen 1: resolution 1440x900, scale 2.0

Plugins:
- console: 0.0.3
- scikit-image: 0.4.3.dev241+g0b1bdac.d20210412
- svg: 0.1.4




Discussion:

Resolving patch:
diff --git a/napari/_qt/layer_controls/qt_labels_controls.py b/napari/_qt/layer_controls/qt_labels_controls.py
--- a/napari/_qt/layer_controls/qt_labels_controls.py
+++ b/napari/_qt/layer_controls/qt_labels_controls.py
@@ -8,6 +8,7 @@
     QHBoxLayout,
     QLabel,
     QSlider,
+    QSpinBox,
     QWidget,
 )
 


Test patch: