2010-08-19 15 views
6

Se duplica una gran cantidad de funcionalidad entre estándar C++ y Qt. En algún momento parece lógico, pero muchas veces parece tonto. Me gusta hacer un nuevo lenguaje de programación, aprender cosas que ya sé. p.ej. usando QFile.Qt: clases Qt frente a estándar C++

Además, si lo hago todo de la manera Qt y supongo que ahora quiero salir de Qt framework, será demasiado tedioso volver a escribir ese código. OTOH Me gusta Qt porque me proporciona bibliotecas que de lo contrario tendría que pescarme como webkit, conectividad de base de datos, dbus, etc.

¿Qué sugieres mezclar estándar C++ o hacerlo puro Qt?

+0

Pregunta ligeramente relacionada: http://stackoverflow.com/questions/1668259/stl-or-qt-containers –

Respuesta

5

Como no hay una GUI en C++, debe abstraer el código GUI del resto del código real.

Luego, dentro de la implementación de QT de su abstracción GUI, puede utilizar el código QT.
También podrá escribir la abstracción de GUI de Wx/Quartz sin afectar el código real.

En el código real (si el trabajo está hecho) se adhieren a las cosas estándar (o libs de plataforma cruzada que son casi estándar (impulso)). Se podría argumentar que QT es multiplataforma. Solo recuerde que el uso de una lib aquí estará estrechamente relacionado con el código de la lib, por lo que extraerlo la última fecha no será trivial. (Consulte la pregunta anterior sobre la eliminación de Rouge Wave de una aplicación heredada)

3

Realizo todas las clases de colección en std :: es más claro para los desarrolladores que no son Qt y más portátil.

Cadenas y listas de cadenas Uso las Qt dentro de una función puramente Qt que está haciendo algo GUI-ish pero de lo contrario uso std :: String. Aunque el formato Qt .arg() es mucho mejor que el stringstream

+0

Los contenedores provistos con Qt tienen una huella más ligera ya que apalancamiento [uso compartido implícito] (http://doc.qt.nokia.com/4.6/implicit-sharing.html), además proporcionan [iteradores de estilo Java] (http://doc.qt.nokia.com/4.6 /containers.html#java-style-iterators). Por lo tanto, recomendaría usarlos en lugar de los de STL. –

+0

existe boost :: format que proporciona una buena manera de generar resultados también. – rriemann