@ agnasg

agnasg


Qt: no, eso tampoco funciona

31-07-2014 4:39 AM

Una lista de acciones dentro del ambiente de Qt que deberían funcionar pero que no funcionan. Estén documentadas o no:

  • Clean no necesariamente Limpia. Si usted agrega un nuevo archivo (externo al proyecto) a un proyecto que ya ha sido creado se genera el error: QtCreator: Target debug/…obj does’nt exist La solución parece ser limpiar el directorio debug o release, o simplemente eliminar los makefile que estén ahi. También funciona agregar a mano el nuevo archivo en el makefile. Clean no funciona para esto (ya ha sido reportado o discutido por diversas razones). En la pestaña de Projects  se pueden customizar los pasos en Clean Steps, que es lo mismo que automatizar los pasos descritos arriba. Pero hay que saber cuáles son esos pasos, es decir, borrar el directorio debug o borrar los makefile, pero como el Clean es ejecutado a través de un jom -f Makefile o nmake -f Makefile, ni idea lo que puede suceder si desde un makefile ordenamos borrar el mismo makefile, al menos no parece elegante. E igualmente no es como elegante editar esos makefile. Al menos hay que cambiar 3-4 targets por cada nuevo archivos agregado, errores pueden suceder, resultados no esperados y demás tragedias. Solución definitiva, borrar los makefiles respectivos y hacer Build de nuevo
  • Cambiar el tamaño de un botón (QPushButton): QPushButton#applyButton::indicator{width:150px;} No, eso tampoco funciona. google reporta varias sugerencias  en especial el manual , pero por ninguna parte se menciona applyButton->setMaximumWidth(80); que resulta ser la forma de hacerlo sin tener que entender cómo funciona setSizePolicy
  • Qt::AlignRight no funciona para alinear widgets a la izquierda. Hay que crear un QHBoxLayout y agregar addStretch(1) y los demás widgets.
  • QtCreator Designer no es la mejor forma para Crear aplicaciones en qt. Es fácil de usar y te permite crear bonitas aplicaciones, pero eventualmente lo tienes que desechar porque es incómodo para hacer el tipo de cosas que un desarrollador maduro tiene que hacer. Ya de por si todo el mecanismo de SLOTs es innecesariamente complicado, por lo que ningún programador serio que se precie de serlo dejará en mano de una aplicación su manejo. Queremos tener el control. De eso se trata. Si buscas en google las preguntas y respuestas alrededor de QtCreator Designer tienen que ver con programadores novatos que todavía creen que Designer es la forma de hacer ui, es decir la idea detrás de qt, que es crear ui. QtCreator es una forma conveniente de tener el proceso de build integrado dado que qt requiere un preprocesamiento especial, ejecutado por el comando moc. Pero en realidad se puede hacer con un compilador y un makefile bien construido. Qtcreator facilita todo esto. Y el gui de Qtcreator es mucho mejor de lo que parece al principio.
  • Yo hice un monumental esfuerzo para crear una aplicación independiente del Gui, utilizando namespaces, templates, classes, etc, todo un esfuerzo perdido porque tratar de migrar a qt tu elegante y generalizada aplicación es una tarea casi imposible. Qt tiene un exceso de personalidad, es el muchacho que se sienta atrás en el salom y sabotea la clase, te baja los pantalones y se mofa de ti. Qt es intratable y pendenciero y hay que someterse a sus dictámenes y maneras. Al final, luego de un mes de trabajo decidí botar a la basura mi aplicación y escribirla de nuevo. Así es Qt, es que es diferente solo en una nueva forma que surgió por generación espontánea.