class_docstr: Extends QComboBox to add extra functionality.
  
  * Handles dict mappings -- user selects a text key, and the ComboBox indicates
    the selected value.
  * Requires item strings to be unique
  * Remembers selected value if list is cleared and subsequently repopulated
  * setItems() replaces the items in the ComboBox and blocks signals if the
    value ultimately does not change.
class_docstr_tok: ["Extends","QComboBox","to","add","extra","functionality",".","*","Handles","dict","mappings","--","user","selects","a","text","key",",","and","the","ComboBox","indicates","the","selected","value",".","*","Requires","item","strings","to","be","unique","*","Remembers","selected","value","if","list","is","cleared","and","subsequently","repopulated","*","setItems","(",")","replaces","the","items","in","the","ComboBox","and","blocks","signals","if","the","value","ultimately","does","not","change","."]
code: def __init__(self, parent=None, items=None, default=None):
      QtWidgets.QComboBox.__init__(self, parent)
      self.currentIndexChanged.connect(self.indexChanged)
      self._ignoreIndexChange = False
  
      # self.value = default
      if (
          "darwin" in sys.platform
      ):  ## because MacOSX can show names that are wider than the comboBox
          self.setSizeAdjustPolicy(
              QtWidgets.QComboBox.SizeAdjustPolicy.AdjustToContents
          )
          # self.setMinimumContentsLength(10)
      self._chosenText = None
      self._items = OrderedDict()
  
      if items is not None:
          self.setItems(items)
          if default is not None:
              self.setValue(default)
  
imports: import sys
  from collections import OrderedDict
  from ..Qt import QtWidgets
label_desc: Use image node_id 1 to create a new ComboBox object from inherited base classes: QtWidgets with example: obj = ComboBox(parent, items, default)