I love Qt on desktops. It's amazing for cross-platform development and it's a shame that much shittier alternatives like GTK+ are far more common.
But it's just not going to work on cross-platform mobile. The user interfaces in, say, Linux and Windows (7) use very similar if not identical UI components and patterns. Android and iOS are very different about the designs of their apps (even though they may seem similar at first look).
If you want to make well-designed apps that actually comply with the guidelines, Qt will need to include millions of different proxies to native behavior to accomplish this. For example, the menus of your app will involve creating it once for Android and once for iPhone. Then you have a lot of different logic for the Android version of your app and iOS version of your app and it becomes a gigantic mess.
Of course, first you need to make sure that at least the basic components that exist in both platforms look and behave correctly. Buttons, check boxes, text boxes... Right now in Qt for Android they don't even use the native styling but fall back to something that looks like Linux from 15 years ago.
Not only that, there are so many things that you have to get right with creating an UI for a mobile touch app from scratch that it's hard to even start listing out the reasons here. One thing that I can think of right now is native touch behavior: even Google can't get this right in Chrome for Android, where scrolling web pages feels completely different to other lists in the OS and the built-in stock browser. (Firefox has the same problem.)
Then there's accessibility, the adaptation of your UI to wildly varying screen sizes and densities and the list goes on.
Even worse, Android UI is constantly evolving at the moment and there are so many new things. Countless developers fail to adapt these new features in their native apps: Qt isn't going to fare any better.
To accomplish an Android UI that looks and feels familiar you need to use the native libraries. It's that simple. They're in Java, it sucks, deal with it.
The developers of the Necessitas Qt port for Android seem to be so out of touch with reality anyway. I remember reading a discussion in their mailing list when they were getting started about the soft keyboard: their intention was to _implement their own soft keyboard in the apps_ instead of using the native keyboard. Fortunately, somebody sane intervened.
Also, Necessitas requires the user to install 30 megabytes of libraries. That is absolutely insane and many older Android models are alarmingly lacking in the storage space allocated for apps.
I just want to punch some holes in your reasoning:
0. I agree that if you want to get native look you should use native tools but there is market for apps that don't have to look native (e.g. games). Actually I see bigger demand for custom looking apps.
0.a. Your screenshot is for pure Qt but Qt strength in mobile landscape is in Qt Quick. That includes writing UIs that adapts to different screen sizes and densities. It is actually sad that Qt Quick which is pure gold might be eliminated by HTML5. While I hope that open source nature of Qt will help here. We will see.
1. There are more platforms than Android and iOS. While those two make majority of smartphone market but why we should forget that they gained popularity in recent 5 years and might lose it in the next 5. While I doubt that this will happen but who knows.
2. Even if exclude older Android models we still have huge market left.
But it's just not going to work on cross-platform mobile. The user interfaces in, say, Linux and Windows (7) use very similar if not identical UI components and patterns. Android and iOS are very different about the designs of their apps (even though they may seem similar at first look).
If you want to make well-designed apps that actually comply with the guidelines, Qt will need to include millions of different proxies to native behavior to accomplish this. For example, the menus of your app will involve creating it once for Android and once for iPhone. Then you have a lot of different logic for the Android version of your app and iOS version of your app and it becomes a gigantic mess.
Of course, first you need to make sure that at least the basic components that exist in both platforms look and behave correctly. Buttons, check boxes, text boxes... Right now in Qt for Android they don't even use the native styling but fall back to something that looks like Linux from 15 years ago.
Not only that, there are so many things that you have to get right with creating an UI for a mobile touch app from scratch that it's hard to even start listing out the reasons here. One thing that I can think of right now is native touch behavior: even Google can't get this right in Chrome for Android, where scrolling web pages feels completely different to other lists in the OS and the built-in stock browser. (Firefox has the same problem.)
Then there's accessibility, the adaptation of your UI to wildly varying screen sizes and densities and the list goes on.
Even worse, Android UI is constantly evolving at the moment and there are so many new things. Countless developers fail to adapt these new features in their native apps: Qt isn't going to fare any better.
To accomplish an Android UI that looks and feels familiar you need to use the native libraries. It's that simple. They're in Java, it sucks, deal with it.
The developers of the Necessitas Qt port for Android seem to be so out of touch with reality anyway. I remember reading a discussion in their mailing list when they were getting started about the soft keyboard: their intention was to _implement their own soft keyboard in the apps_ instead of using the native keyboard. Fortunately, somebody sane intervened.
There's some existing apps in the Play Store that actually use it and if you take a look at them you can see how much of a trainwreck Qt on Android is. https://market.android.com/publish/images/PQAAAPtpmMphsM1j7-... is a fairly descriptive screenshot.
Also, Necessitas requires the user to install 30 megabytes of libraries. That is absolutely insane and many older Android models are alarmingly lacking in the storage space allocated for apps.