ラベルの色変更をしたいのですがスタイルシートを設定したまま色変更をしたいのですが(https://teratail.com/questions/276620)の続きのような話になりますが・・・
カラーパレットを指定するにはどうもスタイルシートを解除しないとならないみたいで・・・
以下のようにしたら、色は変わるのですがスタイルシートで設定していたフォントサイズなども解除されてしまいます(また、スタイルシートに枠線を指定しているとそれも消えてしまいます)
フォントだけなら指定し直せば良いのですが、枠線などを指定していたらそれまで指定し直さねばならず・・・
何処まで追いかけるのかという話にもなってしまいます
他に影響を与えずに背景色と文字の色だけを変更したいのですが何か方法は無いでしょうか
それとも、「そんな方法は無い」のでしょうか(無いのだったら枠線などの細かいところは諦めるとか割り切る方法を考えないとダメですが)
void CustomLabel::ChangeColor(TColorParts *stForeColParts, TColorParts *stBackColParts) { setAutoFillBackground(true); //背景色をパレット書き換え可能にする setStyleSheet(""); //スタイルシート解除(××××××フォントの情報も全部解除される) //背景色の変更 QPalette palThis = this->palette(); QColor pColBack = QColor(stBackColParts->r, stBackColParts->g, stBackColParts->b); palThis.setColor(QPalette::Background, pColBack); //文字色の変更 QColor pColString = QColor(stForeColParts->r, stForeColParts->g, stForeColParts->b); palThis.setColor(QPalette::Foreground, pColString); setPalette(palThis); }
あなたの回答
tips
プレビュー