Pregunta

Estoy trabajando con Qt ( versión 4.6 en Windows XP de 32 bits y la compilación de Qt Creator 2.0.0) y tratando de conseguir un QWizard a funcionar.

primer problema

Tengo tres QWizardPages en mi QWizard hasta ahora. Cada página tiene un QVBoxLayout aplica, ya que de diseño. Mi primera página tiene un contenido muy pequeña (sólo una de tres líneas QLabel) pero por alguna razón hay un poco de espacio en blanco entre el QLabel y el "" y "Cancelar" panel de botón. Quiero que cada página tenga la cantidad mínima de espacio en blanco en función del contenido en su interior. En el pasado, cuando me he puesto un QVBoxLayout en un QWidget sin padres (que es propia ventana), la ventana siempre fue suficiente sólo pequeños para fijar el QVBoxLayout. Ahora hay espacios en blanco extra. ¿Hay alguna opción que tengo para activar o desactivar de manera que los QWizardPages son lo más pequeño posible?

Segundo (y sobre todo probable relacionado con el primero) Problema :

Además, mi segunda página es mucho más grande que mi primera página, así que cuando llego a la segunda página y volver a la primera página, la primera página mantiene el mismo tamaño que la segunda página, pero sólo después de haber visitado el segunda pagina. Es esto un error?

El único ajuste que estoy haciendo geometría es cuando hago un

move(50, 50);

en el constructor QWizard. No se cambia el tamaño ... nada explícito. Estoy tratando de dejar que los diseños hacen su magia.

Gracias por su ayuda en la avanzada.

¿Fue útil?

Solución

Para solucionar este problema, he creado una clase hija de QWizard y creó una ranura privada como esto:

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

Y lo hizo tuvo que llama cada vez que la página se ha cambiado, así:

connect(this, SIGNAL(currentIdChanged(int)), this, SLOT(fitContents(int)));
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top