Pregunta

Ya he escrito un programa en C ++ y me gustaría escribir una interfaz gráfica de usuario para ello. Soy consciente de Qt es una herramienta maravillosa, sin embargo, Qt tiene sus propias clases, que me hacen bastante confusa. por ejemplo: en lugar de cuerdas, Qt tiene una clase llamada QString ..

Me pregunto si puedo mezclar el código C ++ y Qt código en C ++?

¿Fue útil?

Solución

Sí se puede entremezclar Qt y STL muy fácilmente.

La GUI toma QStrings pero silenciosamente crear estos forma std::string o char*, QStrings volvió de Qt se pueden convertir con toStdString() o toAscii().

Qt incluye un conjunto de clases de colección, pero que no tiene que usarlos.

Qt hace un buen trabajo de ver como C ++ moderno, hay algunos 'extras' para manejar el mecanismo de la señal y la ranura de eventos pero estos son más una complicación para el entorno de construcción que al código.

editar: factura gracias

Otros consejos

Me planteo recomiendo mezclar std código C ++ y Qt código juntos.

Vamos a decir, su código de C ++ es la lógica continuación, el código Qt, debe ser sólo para GUI. El uso de un patrones MVC / MVP o del mismo modo, separar la lógica y la interfaz de usuario.

Por lo tanto, sería más fácil en el futuro para ser capaz de ejecutar el código con / sin utilizar una interfaz de usuario.

En resumen, sí se puede! por ejemplo, un QString es esencialmente una cadena y tiene un método ToASCII (), para que pueda utilizar fácilmente Qt para sus proyectos. Aunque usted podría encontrarse con algunos problemas de integración en Qt Visual Studio (suponiendo que esté utilizando), usted será capaz de mezclar código C ++ y Qt código (que se encuentra en C ++)

sí! Qt es algo que se puede utilizar en su código C ++. Qt es principalmente para la interfaz gráfica de usuario, pero es bueno para las clases Socket, contenedores, Red, ... Usted es libre de utilizar STL y otras clases normales o las Qt le ofrece. El punto más importante es que si se utiliza Qt en el código antes de la principal Compilar que debe hacer una compilación meta para que quede listo para usted compilador. Una cosa que debe observar es que Qt es no estándar que significa a pesar de que es compatible con Windows, Linux y Mac OS, no se podrá utilizar en otras plataformas.

Se pueden utilizar juntos.

C ++ tiene una larga historia y la implementación STL y apoyo han evolucionado con el lenguaje. Creo que el equipo de ex-Trolltech decidió que no tienen suficiente control sobre la calidad y disponibilidad de las implementaciones de STL para hacer la biblioteca Qt dependen de él. El resultado es que Qt tiene su propio QTL, encabezado QtAlgorithms y QString.

Se han cuidado para que sean compatibles con el TEL:

  • mayoría de los contenedores tienen una interfaz similar a los STL (por ejemplo: el acceso iterador, push_back (), vacío (), etc)
  • contenedores Qt se pueden convertir a / de contenedores STL (por ejemplo: QVector :: toStdVector, QList :: fromStdList)
  • contenedores Qt se pueden utilizar con algoritmos STL
  • QString se puede convertir a / de std :: string y std :: wstring con toStd (W) Cadena / fromStd (W) cadena

En lo personal, me gusta QString más de std :: string, es más fácil de usar y más potente.

Sí se puede.

I hace realmente una Qt-GUI-envoltura para un conjunto de funciones base C. No hay problemas con la integración de Qt, sólo el bajo nivel C (que las pérdidas de memoria ...).

Vea aquí: http://code.google.com/p/qhocr/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top