2012-03-26 32 views
1

QMainWindowにはQTabWidgetと表示され、にはQPlainTextEditsと表示されます。それ以外に、QWidgetQt::WindowStaysOnTopHintQt::Toolというフラグが付けられており、QPlainTextEditsの検索/置換ツールとして使用したいと思っています。Qt:選択したテキストを非アクティブなウィンドウに表示するには

QMainWindowがアクティブであると表示され、アクティブなQPlainTextEditの選択されたテキストの選択背景が非アクティブ(やや灰色)としてレンダリングされますが、ツールバーのように表示されるようにしたいQMainWindowが有効になり、ツールウィジェットのフォーカスが失われていないデフォルトの選択色が使用されます。

どのように達成できますか?それはもはや非アクティブに見えるように、そのアクティブカラーパレットと同じ(myInactiveWidget)の非アクティブなカラーパレットを作るべきではありません

QPalette p = myInactiveWidget->palette(); 
for (int colorRole=0; colorRole<QPalette::NColorRoles; colorRole++) p.setColor(QPalette::Inactive, colorRole, p.color(QPalette::Active, colorRole)); 
myInactiveWidget->setPalette(p); 

答えて

3

はこの何かを試してみてください。または、あなたが心配するのはテキスト選択ブロックの色であれば十分でしょう。

QPalette p = myInactiveWidget->palette(); 
p.setColor(QPalette::Inactive, QPalette::Highlight, p.color(QPalette::Active, QPalette::Highlight)); 
p.setColor(QPalette::Inactive, QPalette::HighlightedText, p.color(QPalette::Active, QPalette::HighlightedText)); 
myInactiveWidget->setPalette(p); 
関連する問題