2011-10-20 12 views
0

QTableWidgetの "!active"背景色を "active"色と一致するように設定したいと思います。私はこれをやろうとしました:スタイルシートのプロパティを別のプロパティの値に設定しますか?

QTableWidget::item:selected:!active{ 
background-color:QTableWidget::item:selected:active; 
} 

しかし、それは動作していないようです。プロパティの値を別のプロパティの値に設定する方法はありますか?スタイルの中から他のスタイルを参照

おかげで、

デビッド

答えて

0

することはできません。

1)コード内からQTableWidgetのQPaletteを修正してください。 QPaletteオブジェクトは、あなたが探しているプロパティへのアクセスを提供します。

QPalette palette = myTableWidget->palette(); 
palette.setColor(QPalette::Inactive, QPalette::Highlight, palette.color(QPalette::Active, QPalette::Highlight)); 
palette.setColor(QPalette::Inactive, QPalette::HighlightedText, palette.color(QPalette::Active, QPalette::HighlightedText)); 
myTableWidget->setPalette(palette); 

2)いくつかのQStringの魔法を使用します。

QString styleSheet = QString("QTableWidget::item:selected:active { %1 }" 
           "QTableWidget::item:selected:!active { %1 }") 
           .arg("style_for_both_items") 
+0

フム、私は問題は、私はアイテムの値が分からないということだと思います:選択:のアクティブ背景色を、私はしません!activeを同じ色に設定する方法を知っている。私はQPaletteの文書を見て、どのようにこの価値を得るのか分からないのですか?可能であればQtDesignerを使って設定したいと思いますが、現時点ではプログラム的な解決策をとるでしょう:) –

+0

これはやっても問題ないと思っていましたが、選択されていない非アクティブな色はまだグレーですアクティブなものはオレンジです。 (私は彼らが両方ともオレンジ色になることを期待していただろう)。 http://pastebin.com/uvSC2rPU –

+0

私の最後の質問に対するあなたの答えと同じ趣旨で、tableWidgetではなくtableWidget-> currentItem() - > palette()のプロパティを直接設定する必要があります。 ..しかし、私は何かをクリックするまでcurrentItemが定義されていないので、今回はこれを設定するシグナルを処理する必要があります。これを行う良い方法はありませんか? –

関連する問題