2017-09-07 6 views
2

私はQComboBox(または実際にはいくつかのウィジェット)の色を変更しようとしていますが、色プロパティだけでQStyleSheetを作成すると、他のすべてのプロパティが書き込まれます。 Windows上で最も顕著なのは、丸められたQComboBoxが正方形になり、むしろ醜いことです。下のスニペット(実際のコードの色が生成されていることに注意してください。QStyleSheetオーバーライド一般的なスタイル

QString styleSheet = "QComboBox { background-color: #ffffff; color: #000000 }"; 
combBox->setStyleSheet(styleSheet); 

申し訳ありませんが、これらの画像をばかげています。

これは、通常、非スタイルQComboBoxです:

そして、これは、前述のスタイルを適用した後QComboBoxです:あなたは、ダイナミックスタイルシートを使用している

+0

新しいスタイルシートを適用する* only *スタイルシートとして設定しているようです。それは確かに他のすべてのスタイルを削除します。代わりに、新しいスタイルを既存のスタイルシートに追加するか、できない場合は、古いスタイルシートを置き換えるのではなく、追加のスタイルシートとして追加してみてください。 – Tijmen

+0

交換する代わりに追加するにはどうすればよいですか?ドキュメントは基本的にsetStyleSheetが私が持っているすべてだと言います。 –

+0

この問題の概要を示す[QT documentation](http://doc.qt.io/qt-4.8/stylesheet-examples.html#customizing-a-qpushbutton-using-the-box-model)を見ましたボタンの場合、原則は同じです。ネイティブスタイルで解決できないプロパティを変更する場合(ここでやっているように)、エレメントのすべてのネイティブスタイルが無視されるため、エレメント全体をスタイルする必要があります。 – Tijmen

答えて

1

参考:https://wiki.qt.io/Dynamic_Properties_and_Stylesheets

あなたのコードでこれを使用してみてください:

ui->comboBox->setStyleSheet("background-color: rgb(16, 72, 255); color: rgb(255, 17, 80);"); 

これは、ウィジェットのスタイルシートにスタイルシートを追加するようなものです。

+0

彼は動的プロパティを使用していません。あなたのスタイルシートは安全ではありません。それは範囲がありません、そのコンボボックスの子供に影響を与える可能性があります –

+0

あなたは安全なバージョンを提供できますか?今、私はこのコンボボックスに子供がいるとは思えませんが、かなり一般的です。間違いなく将来起こる可能性があります。 –

+0

それを適用した後でさえ、それはまだ同じ醜い外観を与える。 –

関連する問題