Je suis en train d'utiliser QDockWidget
pour créer un composant dynamique pour l'organisation de certaines parcelles définies par l'utilisateur. Les parcelles doivent être changées dans leurs tailles et peuvent être disposées les unes sur les autres.Widget central occupe beaucoup d'espace et Dock Widgets à peu après redimensionner
L'extrait de code suivant illustre ce que je suis en train de réaliser:
#include <QApplication>
#include <QMainWindow>
#include <QLabel>
#include <QDockWidget>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
auto window = new QMainWindow;
window->setCentralWidget(new QLabel("Central Widget"));
for (int i = 1; i < 9; i++) {
auto dock = new QDockWidget(QString("Plot %1").arg(i));
dock->setWidget(new QLabel(QString("Plot %1").arg(i)));
dock->setAllowedAreas(Qt::AllDockWidgetAreas);
window->addDockWidget(Qt::BottomDockWidgetArea, dock);
}
window->show();
return app.exec();
}
Le widget central sert simplement comme un simple espace réservé et est juste nécessaire pour permettre glisser et en réarrangeant les QDockWidget
.
Je suis déjà très satisfait du comportement obtenu en plus de un seul inconvénient. Après le redimensionnement window
(en le rendant plus grand), le widget central consomme tout l'espace nouvellement gagné, alors que les DockWidgets occupent toujours le même espace comme avant.
Le comportement est décrit ci-dessous:
C'est un peu gênant pour l'utilisateur, comme le widget central est juste un espace réservé. En fait, je voulais juste avoir le comportement inverse, c'est-à-dire que le widget central devrait garder sa taille, alors que les DockWidgets devraient être agrandis.
Comment puis-je y parvenir?
Merci pour la réponse rapide. J'ai déjà essayé de cacher le widget central. Mais alors vous n'êtes plus en mesure de faire glisser les widgets de dock autour. En outre, la définition de la taille maximale très petite (0,0) désactive la fonctionnalité de déplacement autour des widgets de la station d'accueil. – Aleph0
Que voulez-vous dire que vous n'êtes plus en mesure de faire glisser les widgets de dock autour? Bien sûr, vous pouvez – IAmInPLS
Si je change à 'auto label = new QLabel (" Widget central "); label-> setMaximumSize (0, 0); 'Je peux toujours faire glisser les widgets du dock. C'est correct. Maintenant, essayez d'aligner tous les widgets de gauche à droite. Après cela, vous êtes incapable d'aligner ensuite de haut en bas à nouveau. – Aleph0