转自豆子空间

使用QColorDialog也很简单,Qt提供了getColor()函数,类似于QFileDialog的getOpenFileName(),可以直接获得选择的颜色。

include <QColorDialog>
...
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);
  • 第一行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::getColor( const QColor & initial, QWidget * parent, const QString & title, ColorDialogOptions options = 0 )
  • 第一个参数initial和前面一样,是对话框打开时的默认选中的颜色;
  • 第二个参数parent,设置对话框的父组件;
  • 第三个参数title,设置对话框的title;
  • 第四个参数options,是QColorDialog::ColorDialogOptions类型的,可以设置对话框的一些属性,如是否显示Alpha值等,具体属性请查阅API文档。特别的,这些值是可以使用OR操作的。

Qt_颜色选择对话框(QColorDialog)的更多相关文章

  1. 一个带动画效果的颜色选择对话框控件AnimatedColorPickerDialog

    android4.4的日历中选择日程显示颜色的时候有一个颜色选择对话框非常漂亮,模仿他的界面我实现了一个类似的对话框,而且带有动画效果. 代码的实现可讲的地方不多,主要是采用了和AlertDialog ...

  2. pyqt5-字体,颜色选择对话框设置label标签字体颜色样式

    1.采用实例方法,先创建2个dialog对象,采用该对象的信号触发相应的操作 import sys from PyQt5.Qt import * class MyWidget(QWidget): de ...

  3. MFC中如何显示颜色选择对话框

    其实很简单,使用MFC现有的类CColorDialog 即可实现 核心代码如下: void CCColorDialogView::OnGraphSetting() { CColorDialog m_s ...

  4. 调用CAD内的颜色选择对话框

    colordialog类 int color; acedSetColorDialog(color,TRUE,0); 第一个函数返回的是颜色的RGB值

  5. MFC 颜色选择对话框、颜色按钮

    COLORREF color=RGB(0,255,0); unsigned char r=GetRValue(color); unsigned char g=GetGValue(color); uns ...

  6. 跟我一起学QT_QT标准对话框_颜色选择框

    标准对话框 QT的标准对话框分为以下几种 颜色对话框 文件对话框 字体对话框 输入对话框 消息对话框 进度对话框 错误信息对话框 向导对话框 颜色对话框 首先学习的是颜色对话框颜色对话框类QColor ...

  7. PyQt4颜色对话框QColorDialog

    QColorDialog提供了用于显示颜色的对话框. #!/usr/bin/python # -*- coding: utf-8 -*- import sys from PyQt4 import Qt ...

  8. [Python][小知识][NO.4] wxPython 字体选择对话框(O.O 不知道放到那里就放到这个分类的)

    1.前言 O.O 前两天回家浪了两天,断更了 哎~~~ o.o 有时候,有木有想改标签或编辑框中内容的字体呀?(o.o 反正我是没有). wxpython也可以说是所在的操作系统,有字体选择器,给我们 ...

  9. 7.Android开源项目WheelView的时间和地址联动选择对话框

    类似WheelView的时间和地址联动选择对话框在现在App经常看到,今天小结下. 主布局界面: <LinearLayout xmlns:android="http://schemas ...

随机推荐

  1. vs2012中如何显示代码行号

    打开一个项目,里面没有显示行号   打开工具-选项   选择文本编辑器-C#   在行号前面上打钩   点击确定,就可以看到代码前面显示出行号 6 还可以按此办法添加其他类型文件的代码行号

  2. 【转】Emgu 图像阈值

    原文地址:http://www.cnblogs.com/CoverCat/p/5043833.html 转载,备查 Visual Studio Community 2015 工程和代码:http:// ...

  3. ActiveMQ安装配置及使用

    ActiveMQ介绍 ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管J ...

  4. Web 前端怎样入门?(转)

    转自知乎https://www.zhihu.com/question/32314049/answer/100898227

  5. 崩 oj 1768 最大子矩阵

    描述 已知矩阵的大小定义为矩阵中所有元素的和.给定一个矩阵,你的任务是找到最大的非空(大小至少是1 * 1)子矩阵.比如,如下4 * 4的矩阵0 -2 -7  0 9  2 -6  2 -4  1 - ...

  6. centos7搭建filebeat

    filebeat的环境搭建 cd /home/elk wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.2.4 ...

  7. POJ2253(dijkstra堆优化)

    https://vjudge.net/problem/POJ-2253 Freddy Frog is sitting on a stone in the middle of a lake. Sudde ...

  8. 用statefulSet 部署持久化的OA(Tomcat)

    1.部署多个副本的OA(Tomcat)集群,其中一个Tomcat的需要加一个定时器,其他代码跟其他的Tomcat的代码一样.需要重启后也还是保持这个状态.代码如下: apiVersion: v1 ki ...

  9. eclipse的快捷键【转载】

    原文地址http://www.open-open.com/bbs/view/1320934157953/ Eclipse中10个最有用的快捷键组合  一个Eclipse骨灰级开发者总结了他认为最有用但 ...

  10. 4.5《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)—第四章小结

    本章相关重要命令总结在Table 6. 命令 描述 示例 mkdir <name> 创建某目录 $ mkdir foo pwd 显示当前所在目录 $ pwd cd <dir> ...