2010-07-28 14 views
5

Tengo una aplicación Qt multiplataforma, y ​​no importa cómo retoque la interfaz de usuario, siempre se ve bien en algunas plataformas y mala en otras, debido a las diferencias entre los estilos de interfaz de usuario.Con QT, ¿hay alguna forma de especificar diferentes diseños de IU para diferentes estilos de IU?

Por ejemplo, los márgenes parecen establecerse universalmente, incluso cuando los elementos subyacentes cambian de tamaño dramáticamente de una plataforma a otra.

¿Cuál es la forma recomendada de manejar esto?

Respuesta

2

Probablemente la forma más segura es tener la interfaz de usuario más básica para empezar. Personalmente utilizo el estilo de estilo qss css. También asegúrese de que cuando subclasifique sus widgets, anule correctamente los métodos de evento (es decir, resizeEvent (...), transfiera los parámetros a una súperclase cuando corresponda, etc.) De acuerdo con las recomendaciones básicas de Qt Docs, debería hacerlo. Otra nota en los diseños, asegúrese de que está utilizando:

QSizePolicy enumeración :: Política

apropiada y sus diseños fluyen bien cuando se cambia de tamaño, etc, en lugar de utilizar posiciones fijas ...

2

Por favor, eche un vistazo a QWindowsStyle, QWindowsXPStyle, QPlastiqueStyle.

Y el uso de

void QApplication::setStyle (QStyle * style) [static] 

Al hacer esto usted debe tener una mirada en todos los SO-es.

+0

Pero esa no es realmente una solución ideal para una aplicación multiplataforma real. Nadie quiere usar una aplicación, digamos, OS X que se parece a una aplicación de Windows. – Nantucket

+0

¡De acuerdo! Por supuesto. ¿Intentó configurar MacOS Style en MacOS y Windows Style en Windows? Puede ser que resuelva los problemas con diseños ... – Narek

Cuestiones relacionadas