qt 調色板(應用到窗體背景)

在這裏插入圖片描述

文章目錄


效果

請添加圖片描述


代碼

創建四個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 ); 即可。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章