我想制作一个 QDialog 框(我认为库中没有一个...叹息),它允许用户选择任意数量的颜色以添加到渐变中(并可能调整它们),有点像渐变选项,可用于重新着色 Power Point 中的对象。
有没有简单的方法来解决这个问题?
我尝试了类似的概念来根据用户选择更改 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));
}
我希望您可以将此概念用于您的目的。