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 ); 即可。


猜你喜欢

转载自blog.csdn.net/Fdog_/article/details/105648524
今日推荐