Qtのラベルで背景色のみを変更したいときはどうしたらいいでしょう
下記のようなソースで試してみたのですが文字色は変わるのですが、背景色は変わりませんでした
スタイルシートで背景色を変更してしまうと、他の属性が元の画面の属性に戻されてしまうので出来ればパレットで変更したいのですが・・・
他に方法は無いでしょうか
void MainWindow::on_pushButton_clicked() { CBaseLabel *local; local = new CBaseLabel(); local->setStyleSheet("font-size:25pt;"); setAutoFillBackground(true); //背景色を変更を可能にする QPalette pal = local->palette(); //現在のパレット取得 pal.setColor(local->backgroundRole(), "#FF0000"); //バックグランドカラー pal.setColor(local->foregroundRole(), "#00FFFF"); //文字色 local->setPalette(pal); //パレット設定 local->setText(QString::number(icnt)); //文字を書いていく // local->setStyleSheet("background-color:rgb(255,0,0);"); //★こちらで色を変えるとフォントがキャンセルされる ui->horizontalLayout->addWidget(local); l.push_back(local); icnt++; } void MainWindow::on_pushButton_2_clicked() { QPalette pal = l[0]->palette(); setAutoFillBackground(true); //背景色を変更を可能にする pal.setColor(l[0]->backgroundRole(), "#000000"); //バックグランドカラー pal.setColor(l[0]->foregroundRole(), "#FFFF00"); //文字色 l[0]->setPalette(pal); }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/10 10:35