Thanks for your reply. I haven't tried with QAbstractButton. And I think apart from SetFlat(), I don't need any functionality specific to QPushButton, so I guess QAbstractButton can be tried.
Btw, after several hits and trials, I have found a solution, although I am not sure how elegant that is.
So basically, instead of calling "QPushButton:aintEvent(event)" in overridden paintEvent, I am using "drawControl" directly from this function. And here, instead of checking is button is down/checked to set "option.state" to QStyle::State_Sunken/QStyle::State_Raised (as done in QPushButton paintEvent), I am directly setting it to QStyle::State_Raised without any checks. This way the button is never sinks.
So until I find something more elegant than this, I will consider the issue to be fixed.
Bookmarks