1

ユーザーが任意の数の色を選択してグラデーションに追加する (そしておそらくそれらを調整する) ことができるようにする QDialog ボックスを作成したいと思います (ライブラリにあるとは思いません... ため息)。 Power Point でオブジェクトの色を変更するために使用できるグラデーション オプション。

これについて簡単な方法はありますか?

4

1 に答える 1

2

ユーザーの選択に従ってQDialogの背景色を変更するために、同様の概念を試しました。コードでスタイル シートを使用しました。これが私のコードのサンプルです。

void Dialog::changeBackgroundColor()
{
    int bg_r = ui->horizontalSlider_2->value(); // user set value on horizontal slider
    int bg_g = ui->horizontalSlider_3->value(); // user set value on horizontal slider
    int bg_b = ui->horizontalSlider_4->value(); // user set value on horizontal slider

    ui->R_label->setText(QString::number(bg_r));
    ui->G_label->setText(QString::number(bg_g));
    ui->B_label->setText(QString::number(bg_b));

    QString styleSheet = "QDialog { background-color : rgb(%1, %2, %3)}";

    this->setStyleSheet(styleSheet.arg(bg_r).arg(bg_g).arg(bg_b));

   //in your case for gradient you can use
   QString styleSheet = "QDialog { qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:0.568, stop:0 rgba(%1, %2, %3, 255)) }";

   this->setStyleSheet(styleSheet.arg(bg_r).arg(bg_g).arg(bg_b));

}

このコンセプトをあなたの目的に使用していただければ幸いです。

于 2012-07-28T00:14:02.303 に答える