¿Cómo puedo obtener una vista previa del tamaño de los widgets en una ventana después de aplicar las reglas de diseño, antes de De hecho, show()
la ventana de widgets? Parece que todos los tamaños son 100x30 antes del comando inicial show()
. ¿Cómo voy alrededor de eso?Cómo obtener una vista previa de los tamaños de widgets en el diseño antes de un show()?
Respuesta
El invalidate()
funcionó para mí.
Tenga en cuenta que si lo hace lo siguiente que iba a funcionar como aquí se le preguntó (al menos parece estar bien en mi código):
widget->show();
widget->layout()->invalidate();
widget->hide();
Esto no muestra el widget en la pantalla, ya que Don ceda el control a la cola hasta que ocurra el hide()
. Mientras tanto, el invalidate()
calcula las posiciones correctas.
Usted podría tratar de google para "geometría qt antes del espectáculo", que muestra un hilo titulado Force geometry update of hidden widget en el foro qtcentre.org donde se puede leer Wysota respuesta:
Puede llamar invalidate() en el diseño. Debería recalcularse a sí mismo y luego. Si no es así, existe este atributo secreto que convence al widget que se muestra y luego debe ser capaz de forzar su diseño a recalcular. Pero pruebe otras cosas primero, esto no es algo muy confiable .
y esto
Qt :: WA_WState_ExplicitShowHide establece en verdadera y Qt :: WA_WState_Hidden establece en falsa. Asegúrese de revertir los valores (especialmente el segundo) antes de que muestre realmente el widget en la pantalla.
Utilice QWidget :: sizeHint para obtener el tamaño deseado del widget de nivel superior según el tamaño de todos los widgets y diseños infantiles. O llame a QWidget :: adjustSize para ejecutar realmente el diseño y cambiar el tamaño del árbol de widgets completo. Tenga en cuenta que adjustSize limitará las ventanas de nivel superior a 2/3 de la pantalla, por lo que es posible que no obtenga lo que desea para ventanas grandes.
Para mí, los siguientes trabajó:
window->layout()->update()
window->layout()->activate()
Esto probablemente hace lo mismo que la respuesta de Alexis, pero que no requiere mostrando-entonces-ocultar la ventana.
¡Esto también me sirvió! Estaba tratando de centrar mi ventana en la pantalla. Estaba constantemente apagado hasta que agregué esas dos líneas justo antes de centrar la ventana. – Onlyjus
Me trataron las diversas soluciones publicadas por otros (show
& hide
, & update
activate
, invalidate
y WA_WState_ExplicitShowHide
& WA_WState_Hidden
) pero ninguno era correcta con todos los widgets que tenía a centro antes de llamar show()
en mi solicitud. Pasé horas cavando y mi problema fue que los tamaños incorrectos se almacenaron en caché dentro de QWidgetItemV2.Unos minutos más tarde se me ocurrió esto:
for(auto*child:widget->findChildren<QWidget*>()){child->updateGeometry();}
widget->updateGeometry();
- 1. Android 3.0, Vista previa de widgets
- 2. ¿Cómo puedo obtener una vista previa de los documentos?
- 3. ¿Puedo obtener una vista previa de la barra de acciones en el editor de diseño gráfico?
- 4. ¿Es posible obtener una vista previa de una página del mercado de aplicaciones antes de publicarla?
- 5. ¿Cómo obtener una vista previa de xml drawable?
- 6. Cómo obtener una vista previa de las imágenes de R.drawable. *
- 7. Vista previa de la imagen antes de cargarla en IE9
- 8. Vista previa de la solicitud CURL antes de enviarla
- 9. cómo una vista previa de una imagen antes de subida en varios navegadores
- 10. ¿Hay una vista previa 'Obtener la última versión' en TFS? (Como el comando 'Obtener' de VSS)
- 11. ¿Puedo obtener una vista previa del XML que PHP SOAP desea enviar antes de enviarlo?
- 12. Rieles + javascript - vista previa de la imagen antes de cargar
- 13. Cómo obtener una vista previa de una consulta delete_all o destroy_all en Rails
- 14. ¿es posible obtener una vista previa de las imágenes locales antes de cargarlas a través de un formulario?
- 15. Obtener el diseño de la vista
- 16. Obtener una vista previa de "git add -u"?
- 17. ¿Cómo puedo obtener el enlace 'Vista previa' de Wordpress para abrir en la misma ventana?
- 18. mostrar widgets en la vista de mapa
- 19. Vista previa de un empuje de Git
- 20. Widget Vista previa Guardar ubicación
- 21. ¿Cómo obtener una vista previa de cualquier archivo dentro de una aplicación Java?
- 22. ¿Cómo crear una vista previa de url en JavaScript?
- 23. ¿Cómo obtener el tamaño de un widget de Android después de calcular el diseño?
- 24. ¿Cómo puede obtener una vista previa de las actualizaciones que realizará una "Actualización de paquete"?
- 25. Obtenga una vista previa JPEG de un PDF en Windows?
- 26. ¿Cómo crear una vista previa de video en Android?
- 27. vista de superposición de cámara, solo para una vista previa?
- 28. ¿Cómo puedo producir una "vista previa de impresión" de un FlowDocument en una aplicación WPF?
- 29. Vista previa de Eclipse JSP
- 30. ¿Cómo puedo obtener una vista previa de una consulta SQL destructiva?
¿Para qué necesitas esto? –
MY own widget window class, examina el tamaño de los objetos y agrega widgets dinámicos en el momento de la construcción. Necesito medir los tamaños de cómo se verán las cosas DESPUÉS de un diseño en esa fase. – JasonGenX