如何在Qt中显示为渐变选择的一系列颜色?

时间:2012-07-27 18:45:35

标签: qt colors gradient

我想制作一个QDialog盒子(我不认为库中有一个......叹气),允许用户选择任意数量的颜色添加到渐变中(并可能调整它们),排序与渐变选项类似,您可以使用它来重新着色Power Point中的对象。

有一个简单的方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分: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));

}

我希望你能将这个概念用于你的目的。