Qt学习之路11--Qt标准对话框(颜色对话框和输入对话框)

在上一篇里面,学习了两种Qt提供的标准对话框,消息对话框和文件对话框,消息对话框用于向用户提示信息;文件对话框用户获取用户选择的文件路径。
今天继续学习 Qt提供的其他两种对话框,颜色对话框和输入对话框。

颜色选择对话框

颜色对话框用于指定颜色,常规使用方式遵循三板斧原则:创建对象后指定父组件并设置属性、模态调用exec()、根据返回值选择执行流程。
Qt中以QColor类来表示颜色的概念,它支持多种颜色表示方式。
- RGB:以红、绿、蓝为基准的三色模型。
- HSV:以色调、饱和度、明度表示的六角椎体模型。
- CMYK:以天蓝、品红、黄色、黑色为基准的全彩印刷色彩模型。
根据三板斧的方式使用如下:

    QColorDialog dia(this);
    dia.setWindowTitle("Color Editor");
    dia.setCurrentColor(Qt:: red);//常值传递const引用
    //dia.setCurrentColor(QColor(100,100,100));//通过生成临时对象来设置RGB初始参数
    if(dia.exec() == QColorDialog::Accepted )
    {
        QColor color = dia.selectedColor();

        qDebug() << color;
        qDebug() << color.red();
        qDebug() << color.green();
        qDebug() << color.blue();
        qDebug() << color.hue();
        qDebug() << color.saturation();
        qDebug() << color.value();
    }

当运行程序后会弹出一个颜色选择对话框:
这里写图片描述
弹出对话框直接点击OK后的输出结果是:
这里写图片描述
输出结果和在对话框上的数据是一致的。

注意:在设置默认颜色时候我们传递的实参并不是一个const引用,而是传递的常数值或者使用了临时变量,为什么正确?

  • const引用在传实参时,若实参类型正确但是它不是左值时就会生成临时对象;若实参的类型不正确,但是可以转换成正确的类型时也会生成临时对象。
  • C++允许常量引用,对于这种行为(建立临时变量),是因为该函数的目的是使用传递的值,而不是修改它们,因此创建临时变量不会造成任何不利的影响,反而会使函数在可处理的参数种类方面更通用。
  • 实际上,对于形参为const引用的C++函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值