颜色对话框QColorDialog
颜⾊对话框的功能是允许⽤⼾选择颜⾊。继承⾃ QDialog 类。
Qt QColorDialog 的功能就是内置了调色板,效果和上图画图板的调色板类似。
常用方法介绍:
- QColorDialog (QWidget *parent = nullptr) //创建对象的同时设置⽗对象
- QColorDialog(const QColor &initial, QWidget *parent = nullptr) //创建对象的同时通过QColor 对象设置默认颜⾊和⽗对象
- void setCurrentColor(const QColor &color) //设置当前颜⾊对话框
- QColor currentColor() const //获取当前颜⾊对话框
- QColor getColor(const QColor &initial = Qt::white, QWidget *parent = nullptr, const QString &title = QString(), QColorDialog::ColorDialogOptions options = ColorDialogOptions()) //打开颜⾊选择对话框,并返回⼀个QColor对象。
参数说明:
initial:设置默认颜⾊
parent:设置⽗对象
title:设置对话框标题
options:设置选项
- void open(QObject *receiver, const char *member) //打开颜⾊对话框
例子:使用QColorDialog修改背景板
(1)在Qt Designer中设置一个按钮,并右击设置槽函数
(2)创建颜色对话框,并获取返回值
getColor() 这个函数可以弹出一个模态对话框,用户选择颜色之后,点击确定,对话框关闭,getColor 返回的值就是用户选择的颜色值!
【注意】该函数是一个static静态函数,不必创建对话框对象,就可以直接使用
(3)获取得到的颜色
这里的ARGB值是指alpha(不透明度)与 RGB 值的所占百分比
(4)修改背景板
方法一:
方法二:
(5)代码展示
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QColorDialog>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
QColor color = QColorDialog::getColor(QColor(0, 0, 0), this, "选择颜色");
qDebug() << color;
// QString style = "background-color: rgb(" + QString::number(color.red())
// + ", " + QString::number(color.green())
// + ", " + QString::number(color.blue())
// + ");";
// this->setStyleSheet(style);
char style[1024] = { 0 };
sprintf(style, "background-color: rgb(%d, %d, %d);", color.red(), color.green(), color.blue());
this->setStyleSheet(style);
}