[c++] GUI codificada a mano contra GUI de Qt Designer


Answers

En mi experiencia con Qt Designer y otros toolkits / UI-tools:

  • Las herramientas de IU aceleran el trabajo.
  • Las herramientas de interfaz de usuario facilitan modificar el diseño más adelante.
  • Las herramientas de interfaz de usuario hacen que sea más fácil / posible para los no programadores trabajar en el diseño de la interfaz de usuario.

La complejidad a menudo puede tratarse en una herramienta de interfaz de usuario dividiendo el diseño en múltiples archivos de interfaz de usuario. Incluya pequeños grupos lógicos de componentes en cada archivo y trate a cada grupo como un widget único que se usa para construir la interfaz de usuario completa. El concepto de Qt Designer de widgets promocionados puede ayudar con esto.

No he encontrado que la escala del proyecto haga la diferencia. Tu experiencia puede variar

Los archivos creados con herramientas de interfaz de usuario (supongo que podría escribirlos a mano si realmente lo desea) a menudo se pueden cargar dinámicamente en tiempo de ejecución (Qt y GTK + proporcionan esta característica). Esto significa que puede hacer cambios de diseño y probarlos sin volver a compilar.

En última instancia, creo que tanto el código sin formato como las herramientas de IU pueden ser efectivos. Probablemente dependa mucho del entorno, del toolkit / UI-tool y, por supuesto, de las preferencias personales. Me gustan las herramientas de UI porque me ayudan a acelerar y permiten cambios fáciles más adelante.

Question

Estoy pasando estas vacaciones aprendiendo a escribir aplicaciones Qt. Estuve leyendo acerca de Qt Designer hace unas pocas horas, lo que me hizo preguntarme: ¿qué usan las personas que escriben aplicaciones del mundo real en Qt para diseñar sus GUI? De hecho, ¿cómo las personas diseñan GUI en general?

Yo, por mi parte, descubrí que escribir el código a mano era conceptualmente más simple que usar Qt Designer, aunque para GUI complejas el diseñador podría tener sentido. Es posible utilizar GUI grandes con Designer, pero con el tiempo pueden ser muy difíciles de administrar a medida que aumenta la complejidad (esta es solo mi opinión). También descargué el código fuente de AmaroK para echar un vistazo a lo que estaban haciendo esos tipos, y encontré muchas llamadas a addWidget () y amigos, pero ninguno de esos archivos XML creados por Designer (aparte: AmaroK tiene que ser mi aplicación favorita siempre en cualquier plataforma).

¿Cuál es, entonces, la forma "correcta" de crear una GUI? Diseñador o código? Permítanos, para esta discusión, considerar los siguientes tipos de GUI:

  1. Diálogos simples que solo necesitan ingresar, mostrar algunos resultados y salir. Supongamos una aplicación que toma una URL de YouTube y descarga el video en el disco duro del usuario. El tipo de aplicaciones con las que es probable que empiece un novato.
  2. GUI de nivel intermedio como, por ejemplo, un editor de notas adhesivas con algunas barras de herramientas / elementos de menú. Tomemos xPad por ejemplo ( http://getxpad.com/ ). Yo diría que la mayoría de las aplicaciones caen en la categoría de "utilidades".
  3. Interfaces de usuario muy complejas, como AmaroK u OpenOffice. Los conoces cuando los ves porque te hacen sangrar los ojos.



Construye diferentes partes de tu UI
en diferentes archivos .ui utilizando QtDesigner,
luego agrúpalos (y agrega complicaciones) en el código.

Hay cosas que no puedes hacer en Qt Designer, solo puedes hacerlo en código,
entonces Qt Designer es solo una (gran) parte de la cadena de herramientas .




Uno de los principales beneficios del uso del diseñador para crear GUI es que otros programadores pueden cambiar o mantener formularios y widgets fácilmente sin la necesidad de profundizar en un código complejo.




Para mí, depende de cuánta lógica está encapsulada en el widget / GUI. Si se trata de formularios simples, prefiero usar QtDesigner.

Si contiene controles complejos o interacción, tiendo a programarlo.




Me gusta recurrir primero al diseñador para desarrollar widgets GUI. Como se menciona en las otras publicaciones, es más rápido. También recibe comentarios inmediatos para ver si "se ve bien" y no confunde al usuario. El diseñador es una de las principales razones por las que elijo Qt sobre otros kits de herramientas. Uso principalmente el diseñador para hacer los diálogos únicos.

Habiendo dicho eso, hago la ventana principal y cualquier widgets complejo a mano. Creo que esta es la intención de Trolltech. QFormLayout es una clase que proporcionan para crear fácilmente un diálogo de entrada programáticamente.

Por cierto, el diseñador en Qt 4 no es un IDE como el que tenían en Qt 3. Es solo un editor para editar archivos .ui. Me gusta de esa forma. El nuevo IDE multiplataforma se llamará Qt Creator.




La organización para la que trabajo ha portado su aplicación GUI a Qt hace varios años. Creo que hay varios aspectos que vale la pena mencionar:

  • Trabajar con Qt Designer, al menos en ese momento, no era una opción realista: había demasiadas funciones que no se podían hacer con Qt Designer;
  • Las convenciones y la estructura que debía preservarse impedían el uso de Qt Designer;
  • Una vez que haya comenzado sin Designer, probablemente sea difícil volver a él;
  • el aspecto más importante, sin embargo, fue que los programadores estaban muy acostumbrados a programar usando vi o emacs, en lugar de usar un GUI IDE.

Mi propia experiencia, que se remonta aprox. 4 años, usando Qt3.3, es que el comportamiento dinámico en diálogos no fue posible de realizar en Designer.




Links