2010-09-16 14 views
1

Je construis une interface similaire aux fonctionnalités de l'IDE Eclipse pour un projet de télémétrie. Je vais montrer beaucoup de widgets différents et chacun d'entre eux doit être redimensionnable/déplaçable/popped_out/popped_in/hideable/"fullscreen-able"/etc ... comme une "perspective" de l'IDE Eclipse.Meilleure approche pour construire une perspective de widget dynamique en utilisant QT?

Quelle serait la meilleure approche en utilisant QT? Quelles classes utiliser? En utilisant QMainWindow de QT/QDockWidgets/LayoutManager ou puisque n'importe quel widget peut être déplacé n'importe où serait-il préférable de manipuler tout en codant manuellement?

Répondre

2

À mon avis, QMainWindow vous donne un bon début. Vous pouvez créer et gérer DockWidgets tout autour de votre widget central et ajouter des barres d'état et d'outils assez facilement.

La classe QDockWidget prend déjà en compte Amarrer/Détacher Masquer les options/show, donc tout ce que vous devez faire est de faire votre propre widget.

En outre, si vous voulez que les widgets soient hideables, vous pouvez regarder dans QSplitter qui permet de montrer deux widgets, un de chaque côté et les redimensionner. Ils sont collapsibles par défaut.

Espérons que cela aide.

EDIT (pour répondre à la question de commentaire):

Vous pouvez utiliser QSettings de le faire. Il vous permet d'enregistrer tous les paramètres souhaités dans le répertoire système.

vous le faites comme ceci:

QSettings settings; 
settings.setValue("editor/wrapMargin", 68); 

et pour le récupérer:

int margin = settings.value("editor/wrapMargin").toInt(); 

Hope this helps.

+0

Merci d'avoir répondu! C'est un bon début! Savez-vous comment manipuler/enregistrer la mise en page une fois que l'utilisateur a fait bouger les widgets? Par exemple, j'aimerais pouvoir créer + n + lignes sur la droite. – David

+1

J'ai modifié mon post pour répondre à votre nouvelle question. – Live

+0

mon souci est de trouver l'information sur la mise en page elle-même, plus que de l'enregistrer sur le disque. Comment les widgets sont-ils disposés lors de la fermeture de l'application? Je suppose que QT ajoute un nouveau LayoutManager à la volée lorsque vous déplacez des widgets, savez-vous quelles propriétés regarder? – David