2012-07-27 66 views
1

我想製作一個QDialog盒子(我不認爲庫中有一個......嘆氣),允許用戶選擇任意數量的顏色添加到漸變(並可能調整它們),就像您可以用來在Power Point中重新着色對象的漸變選項一樣。如何顯示爲Qt中的漸變選擇的一系列顏色?

有沒有簡單的方法去解決這個問題?

回答

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)); 

} 

我希望你能用這個概念來達到你的目的。