Eu tenho alguma experiência em programação multiplataforma. Para começar com o Visual Studio, o código criado no visual studio não será executado de forma inerente, pois os binários compilados do Visual Studio não serão suportados. Você pode tentar desenvolver em C # usando o Visual Studio e, em seguida, pode usar bibliotecas mono para executar esse código no Linux, mas não recomendá-lo a todos. Outra maneira seria usar o gcc e compilar seu código usando o mingw do cygwin no windows e usar esse código compilado no windows e usar o compilador gcc para obter binários no linux. Quanto ao ide que está disponível para ambos os sistemas operacionais, eu sugeriria o Eclipse.
Mas se você quiser uma boa sugestão para o desenvolvimento de várias plataformas, deve se concentrar em todos os sistemas operacionais independentemente, pois cada um deles tem grandes diferenças.
Além disso, com relação ao qt, eles novamente usam mingw / cygwin (para windows) e bibliotecas genéricas de linux, então você pode considerá-los também (eles também fornecem algumas boas bibliotecas funcionais). Apenas depende do que você está construindo!