Hi! I just experienced same strange behavior of QPushButton. I want to kindly ask for some explanations.
I wrote a QDialog derived dialog. That dialog has a standard QDialogButtonBox with "Accept" and "Close" buttons. It also has various other widgets, especially a table view for item selection and a more complex generic/reusable filter panel (QWidget derived) that can be attached to any table view for complex user side filtering. That panel contains various widgets, including two buttons. I now have tripped painfully over a strange behavior that I could track back to the fact that one of those two buttons was automagically set as the dialog's default button. Now, whenever a user presses <Enter> to confirm QLineEdit filter input, also the mentioned clear button is activated - causing a fabulous mess. After some research I could explain that unexpected behavior: autoDefault : bool This property holds whether the push button is an auto default button. ... This property's default is true for buttons that have a QDialog parent This also means there is a workaround: I need to call "setAutoDefault(false)" on each button that has the slightest chance to be ever used in a dialog. Everywhere. That is doable but seems very counterintuitive to me. So my questions are: 1. Is this actually how the autoDefault mechanism should work? 2. Why an opt-out instead of an opt-in? 3. Regarding opt-out: Why not restricting the autoDefault default of true to buttons with QDialogButtonBox parents instead of QDialog parents? 4. Anyway, is it good style to change the default value (!) of a property dynamically like this? Thanks in advance! -- Best Regards, Bernhard Lindner
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Development mailing list Development@qt-project.org https://lists.qt-project.org/listinfo/development