2010-11-09 21 views
1

J'essaie de créer une interface pour mon application en utilisant Qt Designer. Je veux qu'il y ait un ensemble de contrôles en forme de ruban avec des onglets en haut, et une zone de style MDI avec des fenêtres ancrées que je prévois d'afficher et de masquer selon l'onglet du ruban actuellement sélectionné. Je ne fais que commencer avec Qt Designer ainsi que Qt4 lui-même, donc je ne sais pas comment configurer la fenêtre, quels widgets et mises en page dois-je utiliser, etc.Quels widgets Qt4 dois-je utiliser et comment approcher une interface de type ruban?

Il est évident qu'il devrait y avoir un QTabWidget à le haut, mais je ne suis pas sûr du fond. Devrais-je utiliser un QFrame? Une QMdiArea? Un widget de dock? Quelles mises en page puis-je utiliser pour m'assurer que le widget de tabulation a une hauteur fixe, occupe toute la largeur de la fenêtre à tout moment et que la zone du bas change d'échelle lorsque la fenêtre est redimensionnée? J'ai lu dans le manuel que les dispositions de séparateur permettent un ajustement manuel de la taille des widgets qu'elles contiennent, mais je ne peux pas faire glisser la taille de la boîte d'un widget après les avoir placées dans un séparateur. Ainsi, je suis incapable de configurer la zone en dessous du ruban. Quelqu'un aide-t-il?

Répondre

3

Vous devriez regarder dans le QMainWindow et vérifier les multiples utilitaires qu'il peut vous fournir (barre d'outils, StatusBar, DockWidgets, CentralWidget, etc ...). La façon dont j'ai compris votre cas est que vous aurez toujours la zone MDI visible, et que la barre d'onglets ne sera utilisée que pour changer les dockWidgets. Voici comment je le ferais.

Le centralWidget de la fenêtre principale serait un QWidget avec un contenant un widget QTabBar d'abord (en haut) et un QMdiArea en dessous. Les tailles doivent être gérées automatiquement.

Cela permettra à l'utilisateur (ou vous) d'ancrer des widgets dans les zones gauche, inférieure, supérieure ou droite du widget central de la fenêtre principale. Gardez des pointeurs sur les dockWidgets pour pouvoir les déplacer et les montrer/les cacher à volonté.

Espérons que cela aide.