Pregunta

Para aquellos de ustedes que no han estado leyendo mis questoins Qt, estoy aprendiendo Qt para un proyecto. Sólo experiencia con el diseño GUI he limitado en absoluto, y no en Qt.

Tengo una disposición horizontal que quiero llenar con algunos botones. Puedo alimentar a estos botones en muy bien, pero los botones de mi ex-cuadrados se extienden horizontalmente para ocupar más espacio.

Quiero que el controlador de distribución a determinar la mejor manera de tamaño de estos botones, pero también quiero que sus proporciones originales permanezcan intactas. Por ejemplo, si comienzo 32X32 haría con los botones que hay que reducir el tamaño para adaptarse a todos ellos en el diseño, quiero que se encojan proporcional, de manera que se mantiene el ancho de escala de altura. 20X20, 16X16, 12X12 todo sería muy bien, pero 24X16 sería un ejemplo de las dimensiones que son inaceptables.

He vanamente con las políticas de tamaño en los botones y opciones de estiramiento. No estoy viendo, incluso después de leer las clases QPushButton y QHboxLayout cómo hacer esto. ¿Cómo se logra?

Gracias.

¿Fue útil?

Solución

Mientras entiendo la pregunta correctamente, creo que lo que quiere es QBoxLayout::addStretch(). Esto añadirá un objeto espaciador que llena el espacio no utilizado. Así los botones tendrán su tamaño ideal y el espaciador llenarán el resto. Puede experimentar con esto en Designer, es más fácil que el / compilar ciclo de escritura / marcha.

Otros consejos

Usted debe echar un vistazo a las respuestas a esta pregunta. Este es un resumen de mi respuesta allí.

Es necesario crear un derivado costumbre de QLayoutItem, que anula bool hasHeightForWidth() y int heightForWidth( int width ) para preservar la relación de aspecto. Usted podría pasar en el botón y consultarlo, o lo que podría establecer la relación directa. Usted también necesita asegurarse de que la función de widgets () devuelve un puntero al botón adecuado.

Una vez hecho esto, se puede agregar un elemento de diseño para un diseño de la misma manera que lo haría un widget. Así que cuando se agrega el botón, el cambio a utilizar su clase de elemento de diseño personalizado.

No he hecho probado nada de esto, lo que es una solución teórica en este punto. No sé de ninguna manera de hacerlo a través de una solución de diseño, si es que se deseaba.

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