qt - posicionamiento - meta tags definicion informatica
¿Existen herramientas útiles para diagnosticar problemas de distribución y espaciado de Qt? (4)
Consulte también la pregunta relacionada: ¿Cómo depurar los problemas de diseño de Qt?
Tengo algunas jerarquías de widgets complejos que estoy tratando de diseñar, y me encuentro con los problemas habituales de que las cosas estén más juntas o más separadas de lo que esperaba. He encontrado que una técnica muy útil es crear una hoja de estilo con una lista de diferentes colores de fondo y borde para widgets en diferentes puntos de la jerarquía. También he agregado un QFileSystemWatcher
para volver a cargar la hoja de estilos cada vez que se guarda, lo que permite cambios rápidos sin necesidad de reconstruir.
Sin embargo, sigo pensando que debe haber una mejor manera. Observando herramientas como la barra de herramientas de desarrollo web de Firefox que hará cosas como marcar bordes o mostrar la jerarquía de controles. ¿Existen herramientas o bibliotecas que hagan esto para las aplicaciones Qt?
ACTUALIZACIÓN 5 mayo 2016
He encontrado que una de las formas más sencillas e informativas de diagnosticar problemas de espaciado es volcar la jerarquía de widgets en términos de QLayouts. He creado un código de ejemplo que incluye información sobre sugerencias de tamaño, elementos espaciadores, relleno y márgenes de contenido: https://gist.github.com/pjwhams/6ebc040db3ab55615eafd831e184e39c
Otra herramienta: https://github.com/robertknight/Qt-Inspector
¿Podría usar un QHoverEvent para agregar un borde oscuro o una ventana emergente con un ID cada vez que se desplace sobre un elemento?
Lo que está buscando es básicamente una herramienta que analiza la jerarquía QObject o, más bien, QWidget y agrega anotaciones. Esto es exactamente de lo que se trata GammaRay . Tiene licencia GPL y por lo tanto está disponible gratuitamente. Puedes obtener más información en la página del proyecto GammaRay . Lo he usado varias veces, y funciona como se esperaba.
Tarde, pero QObject::dumpObjectTree() me ayudó a resolver mis problemas.
Vuelca un árbol de hijos a la salida de depuración.
Tenía una pregunta de seguimiento relacionada en otro hilo al que Dmitry ideó un gran método que llevó a una buena solución: dibujar una superposición en la parte superior de la ventana de una aplicación
EDITAR: También he encontrado una técnica útil escondida en la documentación de QLayout::itemAt()
que muestra cómo iterar a través de los QLayoutItems
en un diseño y dibujar sus rectángulos