Я не уверен, сработает ли это, поскольку Qt на самом деле не использует нативные элементы управления, а выполняет пользовательскую отрисовку всего. Единственный способ, которым Windows поместит этот значок на кнопку, - это если вы используете окно с классом Button
, то, что вы просите, чтобы оконный менеджер создал для вас.
Также обратите внимание, что для того, чтобы это работало, вы должны включить в свое приложение манифест для ссылки на 6-ю версию общих элементов управления (Comctl32.dll), но вы, вероятно, должны это делать, если вы поддерживаете Windows Vista и 7.
Но есть более простой способ сделать это, используя Qt, включающий QStyle
:
QIcon shieldIcon = QApplication::style()->standardIcon(QStyle::SP_VistaShield);
openHostsPushButton->setIcon(shieldIcon);
В системах, не поддерживающих UAC, значок не появится.