¿Cómo puedo auto-ajuste del tamaño de un QDialog dependiendo de la longitud del texto de uno de sus hijos?

StackOverflow https://stackoverflow.com/questions/1675499

  •  16-09-2019
  •  | 
  •  

Pregunta

Tengo un QDialog estoy trabajando con. Se hace un poco como un QMessageBox. Noté que el tamaño de la QMessageBox (y el tamaño de su etiqueta) depende del tamaño del mensaje que se muestra.

¿Cómo puedo hacer que el tamaño de mi QDialog ajustar automáticamente como un QMessageBox? Ahora, mi QDialog contiene una caja de botones y una etiqueta, y el QDialog es la disposición vertical.

(sé que sólo podía utilizar el cuadro de mensaje directamente pero con el tiempo voy a tener diálogos más complejos.)

¿Fue útil?

Solución

solución automática:

Use diseños y las políticas de tamaño establecidos para QSizePolicy::Expanding . En QtDesigner, una vez que todos sus hijos se colocan en su QDialog, a continuación, haga clic en el tamaño de Ajuste botón queridos al lado de diseño. Su QDialog se ajustará automáticamente en tiempo de ejecución.

Solución manual:

La clase QWidget tiene un método adjustSize que cambiar el tamaño de la QWidget para adaptarse a su contenido. Sólo tiene que llamar cuando se establecen todos los niños.

Otros consejos

Establezca su diálogo de expandir, y muy pequeña. A continuación, asegúrese de ajustar su mensaje antes de mostrar el cuadro de diálogo. Cuando se muestra, se tratará de encontrar su tamaño adecuado, en función del tamaño de los objetos que contiene. (Esto sucede de forma recursiva, por lo que si el diálogo no es el padre directo de la etiqueta en la que se muestra su mensaje, asegúrese de que todo lo que entre la etiqueta y el cuadro de diálogo está configurado para utilizar diseños.)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top