Question

Je travaille avec Qt ( version 4.6 sous Windows XP 32 bits et la compilation de Qt Creator 2.0.0) et essayer d'obtenir un QWizard de travailler.

Premier problème :

J'ai trois QWizardPages dans mon QWizard jusqu'à présent. Chaque page a une QVBoxLayout appliquée comme la mise en page de lui. Ma première page a très faible teneur (juste trois lignes QLabel), mais pour une raison quelconque, il y a un peu d'espace blanc entre le QLabel et le « » et « Annuler » volet bouton. Je veux chaque page pour avoir la quantité minimum d'espace blanc en fonction du contenu à l'intérieur. Dans le passé, quand je l'ai mis un QVBoxLayout dans un parentless QWidget (sa propre fenêtre), la fenêtre était toujours juste assez petit pour fixer le QVBoxLayout. Maintenant, il y a des espaces supplémentaires. Y at-il une option que je dois éteindre ou pour que les QWizardPages sont aussi petits que possible?

Deuxième (et surtout probablement liée à la première) Problème :

En outre, ma deuxième page est beaucoup plus grande que ma première page, alors quand je reçois à la deuxième page et de revenir à la première page, la première page maintient la même taille que la deuxième page, mais seulement après avoir visité le deuxième page. Est-ce un bug?

La seule géométrie réglage que je fais est quand je fais un

move(50, 50);

dans le constructeur QWizard. Pas redimensionne ... rien d'explicite. Je suis en train de laisser les mises en page font leur magie.

Merci pour votre aide à l'avance.

Était-ce utile?

La solution

Pour résoudre ce problème, je créé une classe d'enfants de QWizard et a créé un slot privé comme ceci:

void ChildClass::fitContents(int id)
{
    adjustSize(); // this automagically resizes the window to fit the contents
}

Et fait l'avait appelé à chaque fois que la page a été modifiée, comme suit:

connect(this, SIGNAL(currentIdChanged(int)), this, SLOT(fitContents(int)));
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top