Qt之QColorDialog

简述

QColorDialog提供了一个对话框用于选择颜色。

静态函数getColor()可以用于展示出对话框允许用户指定一个颜色。通过指定额外的选项参数ShowAlphaChannel,可以让用户在选择颜色的同时选择透明度。

通过点击"Pick Screen Color",用户可以拾取程序窗口内的颜色。

使用

效果

源码

构造函数

    colorDialog = new QColorDialog;
    colorDialog->setOption(QColorDialog::ShowAlphaChannel);

    QPushButton *pushBtn = new QPushButton("添加颜色");
    QHBoxLayout *hLayout = new QHBoxLayout;
    hLayout->addWidget(pushBtn);

    connect(colorDialog, &QColorDialog::currentColorChanged,
            this, &Widget::colorValue);
    connect(pushBtn, &QPushButton::clicked, this, &Widget::showColorDialog);

    this->setLayout(hLayout);

槽函数

void Widget::colorValue(const QColor &color)
{
    int r, g, b, a;
    color.getRgb(&r, &g, &b, &a);

    qDebug() << r << " " << g << " "
             << b << " " << a;
}

void Widget::showColorDialog()
{
    colorDialog->show();
}

常用设置

设置当前颜色

设置对话框当前颜色

setCurrentColor(const QColor &color);

设置可选功能

ColorDialog中有些功能是默认关闭的,如透明度(A)通道。可以通过设置选项来打开

setOption(QColorDialog::ShowAlphaChannel);
setOptions(QColorDialog::ShowAlphaChannel);//同时设置多个选项

枚举:QColorDialog::ColorDialogOption

常量描述
QColorDialog::ShowAlphaChannel0x00000001允许用户设置颜色的透明度
QColorDialog::NoButtons0x00000002不显示OKCancel按钮
QColorDialog::DontUseNativeDialog0x00000004使用Qt标准颜色对话框,而不是操作系统本地颜色对话框。

显示对话框

有三种方法可以让颜色对话框显示出来了

colorDialog->show();
colorDialog->setVisible(true);
colorDialog->getColor();

其中的第三种方法无法触发currentColorChanged(const QColor &color)。

信号槽

信号

名称描述
colorSelected(const QColor &color)OK按下后,该信号会被触发
currentColorChanged(const QColor &color)当对话框中选择的颜色发生变化时触发。

引用

[1] Qt助手

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值