Domanda

Sto lavorando con Qt ( Versione 4.6 su Windows XP a 32 bit e la compilazione di Qt Creator 2.0.0) e cercando di ottenere un QWizard a lavorare fuori.

primo problema :

Ho tre QWizardPages nel mio QWizard fino ad ora. Ogni pagina ha una QVBoxLayout applicata come di layout. La mia prima pagina ha molto piccolo contenuto (soli tre linea di QLabel), ma per qualche motivo non v'è un po 'di spazio bianco tra il QLabel e il "" e "Annulla" pane pulsante. Voglio ogni pagina per avere la quantità minima di spazio bianco in base al contenuto al suo interno. In passato, quando ho messo un QVBoxLayout in un senza genitori QWidget (è una finestra), la finestra era sempre e solo piccolo sufficiente per risolvere il QVBoxLayout. Ora c'è spazio bianco in più. C'è qualche possibilità che ho per attivare o disattivare in modo che i QWizardPages sono il più piccolo possibile?

Secondo (e per lo più probabilmente correlati alla prima) problema :

Inoltre, la mia seconda pagina è molto più grande di quanto la mia prima pagina, in modo da quando arrivo alla seconda pagina e tornare alla prima pagina, la prima pagina mantiene la stessa dimensione come la seconda pagina, ma solo dopo che ho hanno visitato il seconda pagina. Questo è un bug?

L'unica geometria impostazione che sto facendo è quando faccio una

move(50, 50);

nel costruttore QWizard. Nessun ridimensiona ... nulla di esplicito. Sto cercando di lasciare che i layout fanno la loro magia.

Grazie per il vostro aiuto in anticipo.

È stato utile?

Soluzione

Per risolvere questo problema, ho creato una classe figlia di QWizard e ha creato uno slot privato in questo modo:

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

E reso aveva chiamato ogni volta che la pagina è stata modificata, in questo modo:

connect(this, SIGNAL(currentIdChanged(int)), this, SLOT(fitContents(int)));
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top