2012-06-14 2 views
2

Je souhaite créer un widget contenant plusieurs QDockWidgets afin de le mettre dans un QMainWindow. Le problème est que si j'ajoute QDockWidgets à ma classe QWidget avec layout->addWidget(dockWidget); (je ne sais pas d'autre façon de le faire) et puis setLayout(layout) je ne peux rien faire pour le QDockWidgets mais dock et détacher. Je ne peux pas les déplacer, je ne peux pas les positionner ailleurs.Impossible de déplacer QDockWidget

QMainWindow a cette fonctionnalité addWidgets que QWidget n'a pas. En utilisant QMainWindow tout fonctionne parfaitement, mais je veux qu'il fonctionne de la même manière si j'ajoute un objet QWidget (contenant quelques QDockWidgets) à QMainWindow.

Est-il possible de rendre mon QWidget complètement compatible avec ceux QDockWidgets, et d'utiliser le plein potentiel (déménagement, balance, station d'accueil, changer de position)?

Merci

Répondre

1

Si vous utilisez beaucoup de QDockWidgets, ce qui permet tout simplement dock nesting pourrait être la solution au problème sous-jacent.

Si vous avez absolument besoin d'un widget à l'intérieur du QMainWindow, vous pouvez essayer de mettre un autre QMainWindow dans le premier. Vous devrez peut-être définir la propriété windowFlags de la seconde QMainWindow sur Qt::Widget.

+0

+1 D'accord, les widgets de quai se comportent comme vous attendez _requires_ a 'QMainWindow', mais peuvent être rendus invisibles. La même technique fonctionne pour ajouter des régions de barre d'outils à l'intérieur des widgets de conteneur. – cmannett85