Explicitly setting `DockWidgetFeature` properties disables those properties.
-
wrote on 9 Feb 2025, 19:09 last edited by
toolbar_dock = PyQt6.QtWidgets.QDockWidget() toolbar_dock.setFeatures(PyQt6.QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetClosable) toolbar_dock.setFeatures(PyQt6.QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetMovable) toolbar_dock.setFeatures(PyQt6.QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetFloatable) toolbar_dock.setWindowTitle("Actions")
To my knowledge, explicitly setting the
DockWidgetFeature
s should grant theQDockWidget
them. However, that example produces:...whereas the undermentioned code:
toolbar_dock = PyQt6.QtWidgets.QDockWidget() toolbar_dock.setWindowTitle("Actions")
...produces:
-
As mentioned above, OR them using binary OR operator:
dock_widget.setFeatures(QDockWidget.DockWidgetClosable | QDockWidget.DockWidgetFloatable | QDockWidget.DockWidgetMovable)
(not tested)
wrote on 9 Feb 2025, 23:51 last edited by@Pl45m4, thanks. That works:
#!/usr/bin/env python3.13 main_content_dock.setFeatures( PyQt6.QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetClosable | \ PyQt6.QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetFloatable | \ PyQt6.QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetMovable )
-
toolbar_dock = PyQt6.QtWidgets.QDockWidget() toolbar_dock.setFeatures(PyQt6.QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetClosable) toolbar_dock.setFeatures(PyQt6.QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetMovable) toolbar_dock.setFeatures(PyQt6.QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetFloatable) toolbar_dock.setWindowTitle("Actions")
To my knowledge, explicitly setting the
DockWidgetFeature
s should grant theQDockWidget
them. However, that example produces:...whereas the undermentioned code:
toolbar_dock = PyQt6.QtWidgets.QDockWidget() toolbar_dock.setWindowTitle("Actions")
...produces:
wrote on 9 Feb 2025, 19:16 last edited by Pl45m4 2 Sept 2025, 19:17QDockWidget::setFeatures(QDockWidget::DockWidgetFeatures)
, for both the C++ and the Qt Py wrappers, sets the given features... but just the recent ones you pass with the function (overriding everything else that was set before).
Meaning if yousetFeatures(DockWidgetFloatable)
last like you do in your first example, this flag is the only one that is set, while the default config includes an OR'ed combination of floatable, closable and movable.So set all the preferred flags in one step.
-
wrote on 9 Feb 2025, 19:44 last edited by
So set all the preferred flags in one step.
@Pl45m4, embarrassingly, how do I do that for this method? I ask because:
-
main_content_dock.setFeatures(PyQt6.QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetClosable).setFeatures(PyQt6.QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetMovable).setFeatures(PyQt6.QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetFloatable)
setFeatures(self, features: QDockWidget.DockWidgetFeature)
: too many arguments -
main_content_dock.setFeatures([PyQt6.QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetClosable, PyQt6.QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetMovable, PyQt6.QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetFloatable])
setFeatures(self, features: QDockWidget.DockWidgetFeature)
: argument 1 has unexpected type 'list'
-
-
So set all the preferred flags in one step.
@Pl45m4, embarrassingly, how do I do that for this method? I ask because:
-
main_content_dock.setFeatures(PyQt6.QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetClosable).setFeatures(PyQt6.QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetMovable).setFeatures(PyQt6.QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetFloatable)
setFeatures(self, features: QDockWidget.DockWidgetFeature)
: too many arguments -
main_content_dock.setFeatures([PyQt6.QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetClosable, PyQt6.QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetMovable, PyQt6.QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetFloatable])
setFeatures(self, features: QDockWidget.DockWidgetFeature)
: argument 1 has unexpected type 'list'
wrote on 9 Feb 2025, 23:13 last edited byAs mentioned above, OR them using binary OR operator:
dock_widget.setFeatures(QDockWidget.DockWidgetClosable | QDockWidget.DockWidgetFloatable | QDockWidget.DockWidgetMovable)
(not tested)
-
-
As mentioned above, OR them using binary OR operator:
dock_widget.setFeatures(QDockWidget.DockWidgetClosable | QDockWidget.DockWidgetFloatable | QDockWidget.DockWidgetMovable)
(not tested)
wrote on 9 Feb 2025, 23:51 last edited by@Pl45m4, thanks. That works:
#!/usr/bin/env python3.13 main_content_dock.setFeatures( PyQt6.QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetClosable | \ PyQt6.QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetFloatable | \ PyQt6.QtWidgets.QDockWidget.DockWidgetFeature.DockWidgetMovable )
-
1/5