原文地址:http://devbean.blog.51cto.com/448512/214164
一 简介
QColorDialog是QT选择的颜色对话框。
getColor函数可以直接选取选择的颜色。
二 代码
1.使用QAction来测试此函数
QColor color = QColorDialog::getColor(Qt::white, this);
QString msg = QString("r: %1, g: %2, b: %3").arg(QString::number(color.red()), QString::number(color.green()), QString::number(color.blue()));
QMessageBox::information(NULL, "Selected color", msg);
要添加头函数
#include<QColorDialog>
2.程序运行结果
三 知识点解释
1.代码解释
(1)
QColor color = QColorDialog::getColor(Qt::white, this);
QColorDialog::getColor()调用了QColorDialog的static函数getColor()。
第一个参数:对话框打开时默认选择的颜色(QColor类型)
第二个参数:它的parent
(2)
QString msg = QString("r: %1, g: %2, b: %3").arg(QString::number(color.red()), QString::number(color.green()), QString::number(color.blue()));
QString(“r: %1, g: %2, b: %3”)创建了一个QString对象;
%1 %2 %3 等是字符参数,可以会用具体的字符串替换掉这些占位符;
占位符的替换需要使用QString的arg()函数,它会按照顺序替换掉占位符;
QString::number(),一个静态函数,作用就是把int、double等值换成QString类型
(3)
QMessageBox::information(NULL, "Selected color", msg);
2.QColorDialog的其他函数
(1)QColorDialog::setCustomColor()
作用:设置用户自定义颜色
QColorDialog::setCustomColor(0, QRgb(0x0000FF));
参数一:自定义颜色的索引
参数二:自定义颜色的RGB值(QRgb类型)
(2)getColor的重载
getColor()还有一个重载的函数,签名如下:
QColorDialog::getColor( const QColor & initial, QWidget * parent, const QString & title, ColorDialogOptions options = 0 )
第一个参数initial:对话框打开时的默认选中的颜色;
第二个参数parent:设置对话框的父组件;
第三个参数title:设置对话框的title;
第四个参数options:QColorDialog::ColorDialogOptions类型的,可以设置对话框的一些属性,如是否显示Alpha值等
这些值是可以使用OR操作的