效果
代碼
創建四個slider,就是這個東西:
將每個slider的最大值設置爲255,因爲RGB每個參數的最大值只要255.
然後創建四個標籤(Label)和一個TextEdit,用於顯示文字和顏色底板:
下面來看代碼部分:
右鍵slider(滑動條)轉到槽,選擇valueChanged(int)添加如下代碼
Q_UNUSED(value);
QColor color;
//獲取四個滾動條的值
int R = ui->verticalSlider->value();
int G = ui->verticalSlider_2->value();
int B = ui->verticalSlider_3->value();
int A = ui->verticalSlider_4->value();
// 輸出調試信息 qDebug() << "R="<<R<<" G="<<G<<" B="<<B<<" A="<<A;
color.setRgb(R,G,B,A);
QString strClr = color.name(); // "#XXXXX" strClr會得到color 十六進制表示的數據
QString strStyleSheet = QString("background-color: %1").arg( strClr ); //%1 類似於printf()中的佔位符 使用arg拼接字符串
ui->textEdit->setStyleSheet( strStyleSheet ); //改變textEdit樣式表
這樣就可以在預覽看到顏色了,但是這只是其中的一個滑動條的槽函數代碼,接下來我們關聯另外三個。
//在構造函數中加入如下代碼
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//加入的代碼
QObject::connect(ui->verticalSlider_2,SIGNAL(valueChanged(int)),this,SLOT(on_verticalSlider_valueChanged(int)));
QObject::connect(ui->verticalSlider_3,SIGNAL(valueChanged(int)),this,SLOT(on_verticalSlider_valueChanged(int)));
QObject::connect(ui->verticalSlider_4,SIGNAL(valueChanged(int)),this,SLOT(on_verticalSlider_valueChanged(int)));
//將不同滑動條發出的valueChanged(int)信號都與第一個槽函數關聯,這樣四個中任意一個值改變都會發送信號來調用槽函數。
}
這個調色板有什麼用呢,可以將她用於設置背景顏色。
在按鈕的槽函數裏面添加上述代碼,只需將textEdit改爲widget(窗口類名稱)
ui->widget->setStyleSheet( strStyleSheet ); 即可。