qdockwidget
Table des matières
QDockWidget
Un dock est un widget dont la position dans la fenêtre principale peut varier au cours de l'execution du programme, sous l'action de l'utilisateur.
Il y a plusieurs enjeux autour d'un dock : la mise en place initiale (avec éventuellement des restrictions sur les actions possibles de l'utilisateur), gérer le layout des widgets enfants lorsque le dock change de position
Mise en place initiale
Liste d'attributs et de fonctions utiles :
# self = dock_widget self.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.TopDockWidgetArea) self.setFloating(False) self.setFeatures(QDockWidget.NoDockWidgetFeatures) self.setFeatures(QDockWidget.DockWidgetMovable) self.setTitleBarWidget(QLabel("red")) # Contenu du dock = un autre widget (ex: controls) qui a un layout self.setWidget(controls)
pour intégrer ce widget dans la fenetre principale :
self.main_window.setCentralWidget(self.central_widget) self.main_window.addDockWidget(Qt.LeftDockWidgetArea, self.controls_dock) # Qt.LeftDockWidgetArea ou Qt.TopDockWidgetArea
Gérer le layout en fonction de la position
On peut connecter le signal dockLocationChanged
du dock à une fonction personnalisée pour mettre à jour le layout.
current_area = self.main_window.dockWidgetArea(self.controls_dock) # Left = 1 Top = 4 if current_area == Qt.LeftDockWidgetArea: # Faire quelque chose ... # avec un layout vertical ou horizontal # création : layout = QVBoxLayout() ... dock.widget_enfant.layout.setDirection(QBoxLayout.LeftToRight) # ou TopToBottom
qdockwidget.txt · Dernière modification : 2023/10/05 06:26 de luc