{"id":8690,"library":"superqt","title":"SuperQT","description":"SuperQT is a collection of missing widgets and components that extend the capabilities of PyQt and PySide for building rich graphical user interfaces. It provides a variety of useful classes, from advanced sliders and combo boxes to utility functions for array conversion and signal blocking. The current version is 0.8.1, with frequent minor releases to add features and fix bugs, typically on a monthly basis.","status":"active","version":"0.8.1","language":"en","source_language":"en","source_url":"https://github.com/pyapp-kit/superqt","tags":["Qt","GUI","PyQt","PySide","widgets","desktop"],"install":[{"cmd":"pip install superqt PyQt6","lang":"bash","label":"Install with PyQt6 backend (recommended)"},{"cmd":"pip install superqt PySide6","lang":"bash","label":"Install with PySide6 backend"},{"cmd":"pip install superqt PyQt5","lang":"bash","label":"Install with PyQt5 backend"}],"dependencies":[],"imports":[{"note":"Most superqt widgets are in specific submodules, not directly under `superqt`.","wrong":"from superqt import QLabeledSlider","symbol":"QLabeledSlider","correct":"from superqt.sliders import QLabeledSlider"},{"note":"Widgets like QToggleSwitch are found in the `superqt.widgets` submodule.","wrong":"from superqt import QToggleSwitch","symbol":"QToggleSwitch","correct":"from superqt.widgets import QToggleSwitch"},{"note":"ComboBoxes are located in the `superqt.combobox` submodule.","wrong":"from superqt import QSearchableComboBox","symbol":"QSearchableComboBox","correct":"from superqt.combobox import QSearchableComboBox"},{"symbol":"qt_signals_blocked","correct":"from superqt.utils import qt_signals_blocked"}],"quickstart":{"code":"import sys\nfrom superqt.sliders import QLabeledSlider\nfrom PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout\n\nif __name__ == '__main__':\n    app = QApplication(sys.argv)\n    w = QWidget()\n    layout = QVBoxLayout()\n    \n    slider = QLabeledSlider()\n    slider.setRange(0, 100)\n    slider.setValue(50)\n    \n    layout.addWidget(slider)\n    w.setLayout(layout)\n    w.setWindowTitle(\"SuperQT Labeled Slider Example\")\n    w.show()\n    sys.exit(app.exec())","lang":"python","description":"This example demonstrates a basic `QLabeledSlider` from `superqt`, which provides a slider with an integrated label showing its current value. It requires a Qt application context."},"warnings":[{"fix":"Upgrade Python to 3.10+ and install a compatible Qt backend (e.g., `pip install PyQt6`).","message":"SuperQT v0.8.0 dropped support for Python 3.9 and PySide2. Users on these versions must upgrade their Python environment or switch to a different Qt binding like PyQt5, PyQt6, or PySide6.","severity":"breaking","affected_versions":">=0.8.0"},{"fix":"Install a Qt backend package alongside superqt: `pip install superqt PyQt6` (or PySide6/PyQt5).","message":"SuperQT does NOT install a Qt binding for you. You must explicitly install one (e.g., PyQt6, PySide6, PyQt5) for superqt to function.","severity":"gotcha","affected_versions":"all"},{"fix":"Always check the documentation or examples for the correct submodule path for the specific widget or utility you intend to use. For example, `from superqt.sliders import QLabeledSlider`.","message":"Many superqt components are organized into specific submodules (e.g., `superqt.sliders`, `superqt.widgets`, `superqt.combobox`). Importing directly from `superqt` will often result in an `AttributeError`.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-04-16T00:00:00.000Z","next_check":"2026-07-15T00:00:00.000Z","problems":[{"fix":"Install a Qt binding, e.g., `pip install PyQt6` or `pip install PySide6`.","cause":"A required Qt binding (PyQt6, PySide6, or PyQt5) was not installed.","error":"ModuleNotFoundError: No module named 'PyQt6'"},{"fix":"Import the widget from its correct submodule, e.g., `from superqt.sliders import QLabeledSlider`.","cause":"Attempted to import a superqt widget directly from the top-level `superqt` module instead of its specific submodule.","error":"AttributeError: module 'superqt' has no attribute 'QLabeledSlider'"},{"fix":"Ensure you are on a recent version of superqt (>=0.7.7 fixed some range slider issues) and explicitly pass two arguments to `setRange(min, max)` and `setValue(min_val, max_val)`.","cause":"In older versions, `QRangeSlider` might have had issues with direct tuple assignment for `setRange` or `setValue`.","error":"TypeError: 'builtin_function_or_method' object is not subscriptable (when using QRangeSlider)"}]}