2011-02-03 26 views
5

Nuestra aplicación de escritorio debe ejecutarse en Mac, Windows y Linux. Es por eso que elegimos Qt. Antes, teníamos tres bases de código separadas para esas 3 plataformas.Qt: Dilema de diseño de la interfaz de usuario filosófica

En la implementación anterior, dibujamos nuestra propia "leyenda de ventana" con los botones Cerrar, Minimizar, Maximizar. Se ve igual en las tres plataformas.

Esta vez, no estoy tan seguro. Pensé en dejar que Qt utilizara los botones de subtítulos y subtítulos predeterminados para cada plataforma, los botones de ventanas rectangulares "X", "_", los botones redondos en el lado izquierdo en el mac y lo que sea que vaya con Linux/Ubuntu etc.

¿Es esta una sabia decisión? Una de las cosas que me impulsa a hacer esto es que tendría que escribir el código de cambio de tamaño para la clase de ventana que estoy escribiendo, el código de arrastre, el botón de trabajo y todo lo demás que viene con escribir su propio título de Windows.

Me di cuenta de que si uso esto, "Qt :: FramelessWindowHint" para eliminar el título, también pierdo automáticamente mi pinza de cambio de tamaño. ¿Hay alguna manera de evitar eso? ¿También cómo implementaría su propio código de arrastrar ventanas? (siempre que conozca el área que desea usar como "subtítulo que se puede arrastrar". Parece que necesito presionar el botón en esa región, ingresar en un modo de arrastre, seguir los movimientos del mouse y mover las ventanas de acuerdo con los deltas. similar para el cambio de tamaño. lo he hecho en otras plataformas antes, pero quería preguntar si Qt tiene un mecanismo que permite que haga que "fuera de la caja"?

Respuesta

11

pensé en dejar que el uso de QT cualesquiera de título predeterminado y un subtítulo de botones para cada plataforma

por favor, indique. Como un usuario de Mac, pocas cosas son más confuso que las interfaces "universales" que se supone que tienen el mismo aspecto en todas partes. la interfaz estilo Windows está confusin gramo. La interfaz Mac Style es a lo que estoy acostumbrado y lo que quiero.

Si tiene que escribir (y mantener y admitir) menos código, eso es aún mejor.

Sígueme el "nativo" tanto como sea posible. Escribe el menor código posible.

+0

¡Escucha!Los usuarios de cualquier sistema de ventanas dado tienen una apariencia (y ubicación) a la que están acostumbrados. Cualquier desviación de esto hace que tengan que esforzarse más para descubrir cómo realizar la acción que desean y, por lo tanto, hace que la aplicación sea más difícil de usar. Y como mencionó esta respuesta: Menos codificación y soporte son siempre algo bueno. –

+0

Gracias y otros comentaristas. Tiene sentido para mí y esto es lo que empujaré a mis jefes. Espero que nuestro artista gráfico que ya diseñó un "pie de foto personalizado" con botones especiales no grite al cielo. – JasonGenX

0

Creo que la aplicación debe seguir el diseño de interfaz de usuario del sistema operativo, de esta manera la apariencia de la herramienta es similar a la de otros sistemas operativos. Por lo general, cuando la aplicación se crea con exactamente la misma interfaz de usuario en las tres plataformas principales, no se sentirá igual que otras aplicaciones que se ejecutan en el sistema operativo.

Por ejemplo, Apple es bastante estricto con su propio diseño de interfaz de usuario, y por lo tanto los usuarios de mac esperan que la herramienta funcione de una manera particular.

Esto también se aplica a teclas de método abreviado, y esa es probablemente la parte más difícil, porque OS X, Linux y Windows tienen sus propios patrones en teclas de método abreviado, y encontrar la combinación adecuada no siempre es fácil.

1

Mi sugerencia es que cada aplicación se vea y se sienta como nativa de la plataforma en la que se ejecuta. La razón es simple: el usuario elige la plataforma específica por una razón. A él o ella le gusta cómo se ve y funciona.

Por supuesto, hay una excepción a esto. Para las aplicaciones de pantalla completa, como los juegos que no usan ventanas, cuadros de diálogo y muchos controles, cocina los tuyos y haz que se vean iguales en todas las plataformas admitidas, está bien e incluso es deseable. Pero para las aplicaciones con ventanas normales, mejor ceñirse a la guía de UI nativa.

Cuestiones relacionadas