2011-09-11 21 views
0

私のアプリではトップウィジェットのセクションがあり、トップウィジェットの色はグレーです。そして、トップウィジェット、QComboBox、QLineEdit、2 QButtonなどのseverlウィジェットを配置しました。私はQLineEditを右クリックすると問題が発生します。下の図のように、ウィンドウのデフォルトコンテキストの色は灰色です。また、QComboBoxを開くと背景色が灰色になります。 2つのウィジェットの背景色を白に設定しますが、うまくいきません。では、どうすればこの問題を解決できますか?より良い理解のためのQtのスタイルシートの問題APP

サンプル:

http://0000.4.img98.net/out.php/i52512_problem.png

私を助けてください

+0

スタイルシートを投稿できますか?私はあなたのスタイルシートで灰色の背景色を設定している方法は、コンボボックスをドロップダウンすることを適用していると仮定します。しかし、あなたのスタイルシートを見れば、私はあなたに良い答えを与えることができます。 – Liz

答えて

1

スタイルシートは、すべての子ウィジェットに伝播するので、あなたは右のセレクターを使用して、範囲を制限する必要があります。コンテキストメニューはQLineEditの子であるため、影響を受けます。

// What you have probably done: 
myLineEdit->setStyleSheet("background-color: gray"); 

// What you should have done: 
myLineEdit->setStyleSheet("QLineEdit { background-color: gray }");  

// What you should do if there might be child widgets of the same type 
// but for which you don't want the style to apply: 
myLineEdit->setObjectName("myLineEdit"); 
myLineEdit->setStyleSheet("QLineEdit#myLineEdit { background-color: gray }"); 

詳細については"The Style Sheet Syntax - Selector Types"を参照してください。