Qt之标准对话框(颜色对话框)

颜色对话框


目录

  • 颜色对话框
    • 目录
      • 颜色对话框
      • 颜色对话框(显示透明度)
      • 颜色对话框(更加灵活的设置)


颜色对话框

1、在头文件中包含 #include < QColorDialog >

void Widget::on_ColorButton_clicked()
{
    QColor color = QColorDialog::getColor(Qt::red,this,
                                          tr("颜色对话框!"));
    qDebug()<<"color: "<<color;
}

这里使用了QColorDialog的静态函数getColor()来获取颜色,它的三个参数的作用分别是:设置初始颜色、指定父窗口和设置对话框标题。
getColor()函数返回一个QColor类型数据。

实现效果如下:
Qt之标准对话框(颜色对话框)_第1张图片

直接单击OK,输出信息应该是 QColor(ARGB 1, 1, 0, 0) ,这里的4个数分别代表:透明度(alpha)、红色(red)、绿色(green)、蓝色(blue)它们的数值都是从 0.0~1.0 ,有效数字为6位。对于alpha来说,1.0表示完全不透明,而0.0表示完全透明。对于三基色的数值还可以用 0~255 来表示。


颜色对话框(显示透明度)

void Widget::on_ColorButton_clicked()
{
    QColor color = QColorDialog::getColor(Qt::red,this,
                                          tr("颜色对话框!"),
                                          QColorDialog::ShowAlphaChannel);
    qDebug()<<"color: "<<color;
}

在颜色对话框中还可以添加对alpha的设置,就是在getColor()函数中再使用最后一个参数。这里的 QColorDialog::ShowAlphaChannel 用来显示alpha设置。

实现效果如下(红色框住地方作为区别处):
Qt之标准对话框(颜色对话框)_第2张图片


颜色对话框(更加灵活的设置)

void Widget::on_ColorButton_clicked()
{
    //创建对象
    QColorDialog dialog(Qt::red,this);
    //显示alpha选项
    dialog.setOption(QColorDialog::ShowAlphaChannel);
    //以模态方式运行对话框
    dialog.exec();
    //获取当前颜色
    QColor color = dialog.currentColor();
    //输出颜色信息
    qDebug()<<"color:"<<color;
}

前面使用 QColorDialog 类的静态成员函数来直接显示颜色对话框,好处是不用创建对象。但是如果想要灵活的设置,则可以先创建对象,然后进行各项设置。

你可能感兴趣的:(Qt,学习之路)