* implement widgets * add basic documentation * Add examples * try version without packaging Co-authored-by: Talley Lambert <talley.lambert@gmail.com>
1.8 KiB
ComboBox
Enum Combo Box
QEnumComboBox is a variant of QComboBox
that populates the items in the combobox based on a python Enum class. In addition to all
the methods provided by QComboBox, this subclass adds the methods
enumClass/setEnumClass to get/set the current Enum class represented by the combobox,
and currentEnum/setCurrentEnum to get/set the current Enum member in the combobox.
There is also a new signal currentEnumChanged(enum) analogous to currentIndexChanged and currentTextChanged.
Method like insertItem and addItem are blocked and try of its usage will end with RuntimeError
from enum import Enum
from superqt import QEnumComboBox
class SampleEnum(Enum):
first = 1
second = 2
third = 3
# as usual:
# you must create a QApplication before create a widget.
combo = QEnumComboBox()
combo.setEnumClass(SampleEnum)
other option is to use optional enum_class argument of constructor and change
combo = QEnumComboBox()
combo.setEnumClass(SampleEnum)
to
combo = QEnumComboBox(enum_class=SampleEnum)
Allow None
QEnumComboBox allow using Optional type annotation:
from enum import Enum
from superqt import QEnumComboBox
class SampleEnum(Enum):
first = 1
second = 2
third = 3
# as usual:
# you must create a QApplication before create a widget.
combo = QEnumComboBox()
combo.setEnumClass(SampleEnum, allow_none=True)
In this case there is added option ---- and currentEnum will return None for it.
QSearchableComboBox
QSearchableComboBox is a variant of QComboBox that
allow to filter list of options by enter part of text. It could be drop in replacement for QComboBox.