【Qt】颜色对话框QColorDialog

 颜色对话框QColorDialog

颜⾊对话框的功能是允许⽤⼾选择颜⾊。继承⾃ QDialog 类。

Qt QColorDialog 的功能就是内置了调色板,效果和上图画图板的调色板类似。

常用方法介绍:
 

  1. QColorDialog (QWidget *parent = nullptr) //创建对象的同时设置⽗对象
  2. QColorDialog(const QColor &initial, QWidget *parent = nullptr) //创建对象的同时通过QColor 对象设置默认颜⾊和⽗对象
  3. void setCurrentColor(const QColor &color) //设置当前颜⾊对话框
  4. QColor currentColor() const //获取当前颜⾊对话框
  5. QColor getColor(const QColor &initial = Qt::white, QWidget *parent = nullptr, const QString &title = QString(), QColorDialog::ColorDialogOptions options = ColorDialogOptions()) //打开颜⾊选择对话框,并返回⼀个QColor对象。

    参数说明:

    initial:设置默认颜⾊

    parent:设置⽗对象

    title:设置对话框标题

    options:设置选项

  6. 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);
}

  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值