2

クリックしたときに QPushButton がインデントされるのを止め、代わりに背景色を変更したいと思います。

事前に乾杯。

4

4 に答える 4

2

配置が簡単な解決策 (ただし、必要なものが正確に提供されない可能性があります) は、 Qt Style Sheetを使用することです。

スタイルシートでは、ボタンが押された状態の背景色を指定できます。これを行うと、インデントが抑制されます。例えば ​​:

pMyPushButton->setStyleSheet("QPushButton:pressed { background-color : red; }");
于 2012-04-26T05:38:24.490 に答える
1

インデントを停止する限り、ここに記載されているように setFlat を実行できると思います: http://doc.qt.io/archives/qt-4.7/qpushbutton.html#flat-prop

于 2012-04-26T03:19:38.283 に答える
0

1 つのオプションは、QPushButton をサブクラス化し、独自の実装でその paintEvent(QPaintEvent *) メソッドをオーバーライドして、必要な外観を与えることです。

または、QCommonStyle (または QWindowsStyle など) のサブクラスを作成して qApp->setStyle() を渡し、drawControl() メソッドをオーバーライドして、要素 CE_PushButtonBevel で drawControl が呼び出されたときに、次を使用してスーパークラスを呼び出すようにすることもできます。 State_Sunken または State_On ビット セットを含まない個別の QStyleOptionButton 引数。(必要な効果を得るために何が必要かを正確に把握するには、おそらくスーパークラスの drawControl() メソッドを少し調べる必要があります)。

于 2012-04-26T03:42:21.090 に答える