No, no vas a tener problemas, se ha hecho precísamente para eso, para que el cambio de plataforma sea solo volver a compilar.
En todos los toolkits de ventanas, ya sea Swing para Java, Qt, o Win.Forms para C# por ejemplo, hay dos maneras de hacer las cosas: a pelo escribiendo el código, o diseñandolo gráficamente (que no es más que generar el código por detrás luego).
El ejemplo primero que has hecho está hecho de la primera manera, que es como de verdad se aprende, sabiendo como funciona, y muchas veces como más rápido se hace
El ejemplo que has hecho tú, está hecho con el Qt Designer. Lo único que hace Qt Designer es generar un fichero .ui (en XML) con el diseño. Este fichero es procesado en tiempo de compilación por uic que lo convierte a código C++ (si te fijas después de la compilación queda un directorio oculto .ui, con las clases generadas).
Como ves estás haciendo lo mismo pero de dos maneras diferentes. Ese ui.h que puedes crear desde el Qt Designer se incluye durante la compilación, y ahí puedes meter algo de código, pero no te lo recomiendo demasiado. Lo mejor es que la lógica del programa la metas en otras clases aparte, a ser posible siempre, no es nada bueno mezclar la presentación (las ventanas) con la funcionalidad.
No me explico muy bien, lo de profesor nunca fue lo mio
.