クリックしたときに QPushButton がインデントされるのを止め、代わりに背景色を変更したいと思います。
事前に乾杯。
配置が簡単な解決策 (ただし、必要なものが正確に提供されない可能性があります) は、 Qt Style Sheetを使用することです。
スタイルシートでは、ボタンが押された状態の背景色を指定できます。これを行うと、インデントが抑制されます。例えば :
pMyPushButton->setStyleSheet("QPushButton:pressed { background-color : red; }");
インデントを停止する限り、ここに記載されているように setFlat を実行できると思います: http://doc.qt.io/archives/qt-4.7/qpushbutton.html#flat-prop
1 つのオプションは、QPushButton をサブクラス化し、独自の実装でその paintEvent(QPaintEvent *) メソッドをオーバーライドして、必要な外観を与えることです。
または、QCommonStyle (または QWindowsStyle など) のサブクラスを作成して qApp->setStyle() を渡し、drawControl() メソッドをオーバーライドして、要素 CE_PushButtonBevel で drawControl が呼び出されたときに、次を使用してスーパークラスを呼び出すようにすることもできます。 State_Sunken または State_On ビット セットを含まない個別の QStyleOptionButton 引数。(必要な効果を得るために何が必要かを正確に把握するには、おそらくスーパークラスの drawControl() メソッドを少し調べる必要があります)。