Como se mencionan otros carteles, la cuestión clave es asegurarse de que nunca toque una API distinta de Qt que no sea multiplataforma. O realmente, incluso una API distinta de Qt crossplatform, si usas Qt tienes que comprometerte con ella, es un marco completo y, en general, quedarte con Qt es más fácil que ir a cualquier otra cosa. Hay algunas buenas ventajas ya que las primitivas básicas en su programa funcionarán de la misma manera en todas partes. (es decir, una QString en su código de red será la misma que una QString en su código de interfaz.) En cuanto a la portabilidad, si permanece dentro de la API que Qt le proporciona, debería funcionar en múltiples plataformas.
Habrá áreas donde puede necesitar llamar algunas funciones de Qt que proporcionan ajustes específicos entre plataformas más importantes para algunas plataformas que otras (por ejemplo, iconos de base) y no tendrá una aplicación pulida en las tres plataformas . Pero en general, debe permanecer muy cerca de una aplicación que compila y ejecuta en los tres. (Trate de usar qmake o un sistema de compilación similar también, ya que el proceso de compilación para aplicaciones Qt varía según la plataforma. Diferentes indicadores, etc.)
Hay algunos problemas extraños que surgen cuando se mezcla Qt con otras API como OpenGL, en particular, la forma en que Windows bloquea los contextos GL difiere de la forma en que lo hace OS X y Linux, por lo que si tiene la intención de utilizar OpenGL con múltiples subprocesos, intente compilar periódicamente en las otras plataformas para asegurarse de que nada esté completamente anulado. Esto también señalará rápidamente áreas en las que podría haber usado inadvertidamente una API del sistema no multiplataforma.
He usado Qt con un equipo para construir un juego multijugador en red multijugador en tiempo real en 3-d (léase: aplicación no trivial que utilizaba muchas áreas de Qt) y no nos quedamos impresionados por la efectividad de la capacidad de Qt para soportar plataformas múltiples. (Desarrollamos en OS X mientras nos enfocamos en Windows y regularmente nos aseguramos de que todavía se ejecutara también en Linux). Encontramos solo algunos errores específicos de la plataforma, la mayoría de los cuales surgieron del uso de API no Qt como OpenGL. (Lo que realmente debería decirte algo, que OpenGL fue más una lucha para usar la plataforma cruzada que Qt).
Al final de la experiencia, nos complació el poco tiempo que necesitábamos dedicarnos a la plataforma específica loco. Fue sorprendente lo bien que pudimos hacer una aplicación GUI para Windows dado que casi ninguno del equipo realmente la usó como una plataforma de desarrollo primaria a través del proyecto.
Pero haga la prueba temprano y con frecuencia. No creo que su enfoque de escribir una aplicación completa y luego probar sea una buena idea. Es posible con Qt, pero poco probable si no tienes experiencia escribiendo código portátil y/o eres nuevo en Qt.
Esto * absolutamente * no es cierto. Qt es mucho más que una biblioteca de GUI multiplataforma y es evidente que debe investigar más sobre ella antes de responder preguntas al respecto. Proporciona todo, desde llamadas a sistemas de archivos multiplataforma a estructuras de datos de alto nivel entre plataformas, a redes multiplataforma y a componentes de navegador integrables multiplataforma. –