Looks like windows style implementation actually has a check that the button focus is only drawn when focus has been changed with the keyboard (tab, backtab, or shortcut), in other words, when attribute Qt::WA_KeyboardFocusChange is set. This can't even be worked around by passing appropriate focus reason (which I suspected to solve the problem at first sight)
btCancel->setFocus(Qt::TabFocusReason);
btCancel->setFocus(Qt::TabFocusReason);
To copy to clipboard, switch view to plain text mode
One would have to set the attribute to the top level window by hand. I'm afraid I cannot recommend such workaround because it could break something else. Here it goes anyways 
window()->setAttribute(Qt::WA_KeyboardFocusChange);
btCancel->setFocus();
window()->setAttribute(Qt::WA_KeyboardFocusChange);
btCancel->setFocus();
To copy to clipboard, switch view to plain text mode
You can always send a bug report to Trolltech if you feel it should behave differently.
Edit: Oh, and there is another way to work it around I forgot to mention. A custom style which returns true for QStyle::styleHint(QStyle::SH_UnderlineShortcut).
Bookmarks