Frage

Ich arbeite mit Qt ( Version 4.6 auf Windows XP 32-Bit und Kompilieren in Qt Creator 2.0.0) und versucht, einen QWizard raus zu arbeiten.

Erstes Problem: :

Ich habe drei QWizardPages in meinem QWizard so weit. Jede Seite verfügt über ein QVBoxLayout wie es das Layout angelegt. Meine erste Seite hat sehr geringen Gehalt (nur drei Linien QLabel), aber aus irgendeinem Grund gibt es ziemlich viel Leerraum zwischen dem QLabel und dem „“ und „Abbrechen“ Bereich. Ich möchte jede Seite die minimale Menge an Leerraum haben, basierend auf dem Inhalt in seinem Inneren. In der Vergangenheit, als ich einen QVBoxLayout in einem elternlos QWidget gesetzt habe (es ist eigenes Fenster), war das Fenster immer nur klein genug, um die QVBoxLayout zu beheben. Jetzt gibt es zusätzliche Leerzeichen. Gibt es eine Möglichkeit, dass ich deaktivieren oder so haben, dass die QWizardPages so klein wie möglich sind?

Zweite (und meistens wahrscheinlich mit dem ersten zusammen) Problem :

Auch meine zweite Seite ist viel größer als meine erste Seite, so dass, wenn ich auf die zweite Seite gelangen und auf die ersten Seite zurückkommen, die erste Seite behält die gleiche Größe wie die zweite Seite aber erst, nachdem ich besucht habe die zweite Seite. Ist das ein Fehler?

Die einzige Geometrie Einstellung ich tue, ist, wenn ich ein

move(50, 50);

im QWizard Konstruktor. Keine komprimiert die Größe ... nichts explizit. Ich versuche, die Layouts tun, um ihre Magie zu lassen.

Danke für Ihre Hilfe in vorgerückten.

War es hilfreich?

Lösung

Um dieses Problem zu beheben, habe ich ein Kind Klasse von QWizard und erstellt einen eigenen Steckplatz wie folgt aus:

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

Und machte es hatte es jedes Mal, wenn die Seite geändert wurde genannt, etwa so:

connect(this, SIGNAL(currentIdChanged(int)), this, SLOT(fitContents(int)));
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top