Qt学习之路(16): Qt标准对话框之QColorDialog-阿里云开发者社区

开发者社区> 科技小能手> 正文

Qt学习之路(16): Qt标准对话框之QColorDialog

简介:
+关注继续查看
继续来说Qt的标准对话框,这次说说QColorDialog。这是Qt提供的颜色选择对话框。
 
使用QColorDialog也很简单,Qt提供了getColor()函数,类似于QFileDialog的getOpenFileName(),可以直接获得选择的颜色。我们还是使用前面的QAction来测试下这个函数:
 
InBlock.gif        QColor color = QColorDialog::getColor(Qt::white, this); 
InBlock.gif        QString msg = QString("r: %1, g: %2, b: %3").arg(QString::number(color.red()), QString::number(color.green()), QString::number(color.blue())); 
InBlock.gif        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文档来看看这个类的使用,下面只给出一个简单的用发:
 
InBlock.gifQColorDialog::setCustomColor(0, QRgb(0x0000FF));
 
getColor()还有一个重载的函数,签名如下:
 
InBlock.gifQColorDialog::getColor( const QColor & initial, QWidget * parent, const QString & title, ColorDialogOptions options = 0 )
 
第一个参数initial和前面一样,是对话框打开时的默认选中的颜色;
 
第二个参数parent,设置对话框的父组件;
 
第三个参数title,设置对话框的title;
 
第四个参数options,是QColorDialog::ColorDialogOptions类型的,可以设置对话框的一些属性,如是否显示Alpha值等,具体属性请查阅API文档。特别的,这些值是可以使用OR操作的。
 
QColorDialog相对简单一些,API文档也很详细,大家遇到问题可以查阅文档的哦!

本文转自 FinderCheng 51CTO博客,原文链接:
http://blog.51cto.com/devbean/214164

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
关于安卓开发使用AlertDialog实现按钮对话框
AlertDialog 类的功能非常强大,它不仅可以生成带按钮的提示对话框,还可以生成带列表的对话框。 使用AlertDialog实现对话框建一个layout文件 alert.xml  添加一个按钮 命名为:显示带取消中立确定按钮的对话框建一个activity  AlertDialog_lianxi.
729 0
机器学习之旅---logistic回归
一、logistic回归分析简介     logistic回归是研究观察结果(因变量)为二分类或多分类时,与影响因素(自变量)之间关系的一种多变量分析方法,属于概率型非线性回归。
926 0
学习flying logic
之前在知乎上结识的朋友吴笛,他的qq空间里分享了  flying logic的一些用途,我想到可以规划和团队的目标,这点让我感到很兴奋,分享学习这个软件。 学习之前,我应当把软件中的单词学明白。现在就开始,用笨办法逐条翻译。
858 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
11987 0
jQuery EasyUI API 中文文档 - 对话框(Dialog)
Dialog 对话框 扩展自 $.fn.window.defaults,用 $.fn.dialog.defaults 重写了 defaults。 依赖 window linkbutton 用法 1. 2.     Dialog Content.   3. 1. $('#dd').dialog({   2.     modal:true 3. });  特性 其特性扩展自 window,下列是为 dialog 重写的特性。
755 0
RMAN_学习笔记5_RMAN Catalog Script恢复目录脚本
2014-12-24 Created By BaoXinjian 一、摘要 简言之,将rman的备份恢复命令写成脚本并保存在恢复目录内,恢复目录内的脚本可用性及通用性高于基于文件系统的脚本。 客户端只要能够登录到RMAN恢复目录,则这些脚本可用,尤其对于global脚本,可以被任意注册的数据库调度。
835 0
机器学习实战第五章(Chapter5):Logistic回归-程序原理详解
这一个章节中作者主要运用了Logistic回归分类器进行分类,分类器的函数形式是Sigmoid函数,过程可以概括为:每个输入特征乘以一个回归系数,然后将所有的结果值相加,将总和带入Sigmoid函数中进行分类,整个过程也可以被看成概率估计。
1233 0
23706
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载