Можешь полопатить qss и кастомные виджеты в указанном в ответе репозитории — это как раз то, что я тогда рисёрчил. Там достаточно много интересных вещей в плане стилизации.
Это можно, но если трогать исходники Qt. Поверь мне, я эту тему рисёрчил весьма долго с заглядыванием в исходники. Не веришь — спроси в ICR qt на freenode, там тебе то же самое ответят.
Не только в инсталлятор: в бандл тоже легко подсунуть что угодно. Если подписи нет, то никто и не заметит.
Пример:
MyApp.app/Contents/MacOS/MyApp — зловред
MyApp.app/Contents/MacOS/MyApp_orig — настоящая прога
Зловред после запуска себя перемещает в /usr/local/bin, а MyApp_orig переименовывает в MyApp и запускает.
Хм! Обычно наследуются от QWidget и в нём рисуют в paintEvent с помощью стандартного QPainter'а. Либо же ставят eventFilter на обычный виджет и в нём ловят отрисовку.
Если честно, ни разу не видел, чтоб наследовались от QPainter'а.
Мне кажется, что если задача легко решается рекурсией, не стоит её решать другими методами. Это я к задаче об обходе дерева — рекурсия здесь более чем уместна.