2009-08-09 16 views
26

Estoy interesado en aprender Qt. Soy bastante bueno con C++, STL y Boost. Me gusta mucho el estilo STL/Boost, y los uso con C++ siempre que puedo en proyectos uni. Sin embargo, siempre extraño la GUI. Parece que Qt es la mejor solución en mi caso. Qt tiene una buena colección de contenedores, pero estoy muy familiarizado con las cosas de STL/Boost.¿Qt funciona bien con STL & Boost?

¿Qué debo cuidar al aprender Qt y usarlo al lado de STL/Boost?

Respuesta

32

Sí, Qt funciona bien tanto con Boost como con STL. La mayor parte de la funcionalidad STL está duplicada en Qt para garantizar que dichas características sean compatibles con todas las plataformas que admiten Qt. Sin embargo, nada le prohíbe usar contrapartes STL/boost de las construcciones o funcionalidades de Qt en las que carece Qt.

Aunque Qt tiene sus propios objetos de cadena, contenedor y algoritmo, también contiene una gran cantidad de funciones para compatibilidad con STL. Por ejemplo, un QString se puede convertir a std :: string y un QVector se puede usar con std :: for_each. Qt también contiene algunas características que se superponen con boost como QPointer (comparar/contrastar con std: auto_ptr y boost: shared_ptr).

El artículo Creating Custom Qt Types puede proporcionar cierta información sobre el uso de funciones avanzadas con objetos de impulso como transmitting custom objects between threads with queued connections.

Consulte también:

11

Qt no funcionan bastante bien junto STL, aunque al igual que cualquier marco que han tenido que sustituir algunas estructuras STL por necesidad (la solo uno que se verá obligado a usar es cadena/unicode). Todo lo de Boost funciona muy bien, de hecho es un gran par de kits de herramientas para usar juntos, pero tendrás que tener cuidado con boost :: signals, ya que Qt también tiene una implementación de señales y los nombres se pueden superponer. Boost cubre esto en un FAQ y también hay información sobre el sitio Trolltech y sobre cómo evitar el problema.

+2

La documentación de Qt también aborda el problema de señal/ranuras aquí: http://doc.trolltech.com/4.5/signalsandslots.html#using-qt-with-3rd-party-signals-and-slots –

Cuestiones relacionadas