Explicitly setting `DockWidgetFeature` properties disables those properties.
-
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:
-
@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 )
-
QDockWidget::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.
-
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'
-
-
As mentioned above, OR them using binary OR operator:
dock_widget.setFeatures(QDockWidget.DockWidgetClosable | QDockWidget.DockWidgetFloatable | QDockWidget.DockWidgetMovable)
(not tested)
-
@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 )
-
R RokeJulianLockhart has marked this topic as solved on