QPushButton in QMessageBox missing key shortcut underline on initial display
-
@Harry123
I'd say the default is determined by the OS settings, and Qt simply wouldn't presume to override it. That'd explain why when you change the settings systemwide the behavior changes accordingly.wrote on 11 Mar 2016, 09:19 last edited by Harry123 3 Nov 2016, 09:27I don't think this is a system default, since Qt paints its buttons itself and does not use native widgets.
I say this because if I look into a Qt dialog using Spy++, it has no children, so no native objects.
The reason for this design decision is probably that there was no other way to assure identical functionality across all platforms.Therefore this is a Qt default which in my opinion is badly chosen, since the Windows default is just the opposite - to always underline button shortcuts in dialogs.
-
my windows 7 do not have underscore as default.
only when i press alt.
That goes for buttons and menus.
Except some common file open dialog it seems :) -
I don't think this is a system default, since Qt paints its buttons itself and does not use native widgets.
I say this because if I look into a Qt dialog using Spy++, it has no children, so no native objects.
The reason for this design decision is probably that there was no other way to assure identical functionality across all platforms.Therefore this is a Qt default which in my opinion is badly chosen, since the Windows default is just the opposite - to always underline button shortcuts in dialogs.
Moderatorswrote on 11 Mar 2016, 10:30 last edited by kshegunov 3 Nov 2016, 10:33I don't think this is a system default, since Qt paints its buttons itself and does not use native widgets.
Which wouldn't stop it to honor the default system behavior, would it?
As @mrjj noted:
my windows 7 do not have underscore as default.
Which had been my experience as well.
The reason for this design decision is probably that there was no other way to assure identical functionality across all platforms.
This design decision, if memory serves me, happened some time when Qt 4 was developed (which should be about 10 years ago) and it was mostly done because using native handles is costly as hell, and UIs tend to just eat up resources if you have a handle for each tiny thing. And it's been working just fine, if I may add.
Kind regards.
-
I'm under Windows, and I add several QPushButtons to a QMessageBox. A shortcut key is specified by an ampersand before the preferred character in each text.
When the message box is initially displayed, the shortcut keys of all buttons are not marked by an underline, but :
- The button does execute if I type the shortcut key in spite of the missing underline.
- If I press the Alt key, the shortcut underline appears on all buttons and stays displayed after I release the Alt key.
This lack of an initial visual cue may cause the end-user to assume that shortcuts were not provided.
Is there something I should do to force the display of the shortcut underlines when the message box is initially displayed ?
wrote on 15 May 2018, 20:09 last edited by@Harry123
I did it putting this in main.cpp and that's all folks ;-)QApplication a(argc, argv); a.setStyle("fusion");