спасибо @Owen, но я бы хотел добавить несколько заметок для Qt 5.7:
1.QWidget :: setStyle () не берет на себя ответственность объекта стиля, поэтому вам нужно удалить его после использования, иначе это приведет к утечке ресурса.
2.Для QProxyStyle (QStyle *), QProxyStyle станет владельцем стиля ввода,
но w-> style () может вернуть объект стиля QApplication, если его собственный стиль не установлен.
так
new iconned_dock_style( QIcon(":/icons/icons/utilities-terminal.png"), w->style())
может стать владельцем объекта стиля приложения, а при уничтожении удалит его. это приведет к сбою приложения во время завершения работы QApplicatoin.
так что теперь я использую
new iconned_dock_style( QIcon(":/icons/icons/utilities-terminal.png"), NULL)