You can implement the frontend separately for each platform, which is used by example by usbimager, Transmission or SciTE.
This is very hard to do in practice for any big enough software, but then using Qt, Java or C# frameworks is probably worth it since their impact will start to be small compared to your application footprint.
This is very hard to do in practice for any big enough software, but then using Qt, Java or C# frameworks is probably worth it since their impact will start to be small compared to your application footprint.