2021-10-20QT编程入门系列文章之十六——Qt标准对话框之 QColorDialog

在这里插入图片描述
继续来说Qt的标准对话框,这次说说QColorDialog。这是Qt提供的颜色选择对话框。

使用 QColorDialog 也很简单,Qt 提供了 getColor()函数,类似于 QFileDialog 的getOpenFileName(),可以直接 获得选择的颜色。我们还是使用前面的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哦!这段代码虽然很少,但是内容并不少。

第一行 QColorDialog::getColor()调用了QColorDialog的static函数getColor()。这个函数有两个参数,第一个 是 QColor类型,是对话框打开时默认选择的颜色,第二个是它的parent。

第二行比较长,涉及到QString的用法。如果我没 记错的话,这些用法还没有提到过,本着“有用就说”的原则,尽管这些和 QColorDialog 毫不相干,这里还是解释一下 。 QString(“r: %1, g: %2, b: %3”)创建了一个QString对象。我们使用了参数化字符串,也就是那些%1之类。在Java的properties文件中,字符参数是用{0}, {1}之类实现的。其实这都是一些占位符,也就是,后面会用别的字符串替换掉这些值。占位符的替换需要使用QString的arg()函数。这个函数会返 回它的调用者,因此可以使用链式调用写法。它会按照顺序替换掉占位符。然后是QString::number()函数,这也是QString的一个 static函数,作用就是把int、double等值换成QString类型。这里是把QColor的R、G、B三个值输出了出来。关于QString 类,我们会在以后详细说明。

第三行就比较简单了,使用一个消息对话框把刚刚拼接的字符串输出。

现在就可以运行这个 测试程序了。看上去很简单,不是吗?

QColorDialog还有一些其他的函数可以使用。

QColorDialog::setCustomColor()可以设置用户自定义颜色。这个函数有两个值,第一个是自定义颜色的索引,第二个是自定义颜 色的 RGB值,类型是QRgb,大家可以查阅API文档来看看这个类的使用,下面只给出一个简单的用发:

QColorDialog::setCustomColor(0,  QRgb(0x0000FF));

getColor()还有一个重载的函数,签名如下:

QColorDialog:😦  const QColor & initial, QWidget * parent, const QString &  title, ColorDialogOptions options = 0 )

第一个参数initial和前面一 样,是对话框打开时的默认选中的颜色;

第二个参数parent,设置对话框的父组件;

第三个参数title,设置对 话框的title;

第四个参数options,是QColorDialog::ColorDialogOptions类型的,可以设置对话框的一些属性,如是否显示Alpha值等,具体属性请查阅API文档。特别的,这些值是可以使用OR操作的。

QColorDialog相对简单一些,API文档也很详细,大家遇到问题可以查阅文档的哦!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习成长分享快乐

您的鼓励是我前进的不竭动力~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值