Qt не Java, при разработке сложного продукта придется так или иначе прибегать к помощи нативных средств. Если страшно то можно изолировать различия в разных исходных файлах и управлять ими через систему сборки, если не страшно, то можно и макросами
.