Нашел также еще одно решение. Которое создает иерархию окон приложения на Qt (не знаю, всех ли приложений, но как минимум, мне помогло). Правда класс окон везде по прежнему одинаковый, и их текст тоже, но тут уже можно исходя координат относительно друг друга вычислить, что за окно (у меня на win 10 сработало, при чём перезапускал только саму программу):

I ran into this problem when trying to hook up an automated GUI tool we have in house. The problem is due to the way QT emulates windowing. In order to see window handles in Spy++ (and various Windows API functions) you will need to add an environment variable:
(From Windows 8.1):
Go to Control Panel\System and Security\System\Advanced System Settings...
On the Advanced tab hit Environment Variables
Add a new variable with a name of QT_USE_NATIVE_WINDOWS and value of 1
For user variables you need to restart visual studio
For environment variables you may need to restart the machine
Once all of the above is done you should be able to use Spy++ to get the button handles.