My biggest problem with Qt is the same as my biggest problem with Java. It's okay for in-house test tools, but it should never be used for actual end-user apps. You'll invariably end up with an application that doesn't quite behave like a native app, doesn't perform as well as a native app, and can't take advantage of advanced features of each OS without losing portability. In short, cross-platform apps written in this way almost invariably take advantage of only the least-common-denominator functionality common to all OSes, resulting in an app that sucks equally everywhere.
There's only one right way to create a cross-platform application: by separating the core logic from the UI, and then hiring people who actually know how to write software for each target OS to designing a custom UI that conforms to the way that users on that particular platform expect an app to behave. Anything less will always be substandard on one platform at best, and on all platforms at worst.
Now you could write that core logic in Java if you really want to (though you'll run into portability problems if anybody ever asks for an iOS port), but chances are, you're better off writing it in C or C++. Either way, using Qt or Java for the UI is IMO invariably a mistake unless you're just writing an app to meet your own personal needs.