4

入力フォームに編集可能なコンボボックスがあり、フォーカスを受け取ったときに背景を変更する必要があります。次のコードはQLineEditに最適ですが、QComboBoxには影響しません。

QLineEdit, QComboBox { background-color: green; }
QLineEdit:focus, QComboBox:focus { background-color: red; }

Qtスタイルシートのみを使用してQComboBoxをQLineEditのように動作させることは可能ですか?

4

1 に答える 1

0

これを行うには、QLineEditをサブクラス化し、コンボボックスに(を使用してQComboBox::setLineEdit())インストールする必要があります。次に、QLineEditのfocusIn()関数とfocusOut()関数をオーバーライドし、これらの関数で適切な背景色を使用してスタイルシートを設定します。

もう1つの方法は、コンボボックス(および/または関連するQLineEdit)にイベントハンドラーをインストールし、フォーカスイン/アウトイベントをトラップしてから、スタイルシートを変更することです。

于 2013-02-08T20:28:33.960 に答える