思路

输入RGB/Hex值,回车触发转换并自动复制结果到剪贴板,简单高效

实现

回车生效的事件直接用的是QLineEdit自带的returnPressed()事件,而复制到剪贴板用到的是QClipboard类:

1
2
3
4
5
#include <QClipboard>

QString str = "Hello";
QClipboard *clip = QApplication::clipboard();
clip->setText(str);

这样这个”Hello”就自动复制到剪贴板里了.

接下来最主要的就是颜色值的相互转换了,可以里用QColor类,先获取对应的color,然后再转换为对应的显示形式,这里贴上核心代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <QColor>

QColor color(235,235,235);
int red = color.red();
int green = color.green();
int blue = color.blue();
QString strRed = QString("%1").arg(red & 0xFF, 2, 16, QLatin1Char('0'));
QString strGreen = QString("%1").arg(green & 0xFF, 2, 16, QLatin1Char('0'));
QString strBlue = QString("%1").arg(blue & 0xFF, 2, 16, QLatin1Char('0'));

//十六进制显示
QString hex = QString("#%1%2%3").arg(strRed.toUpper()).arg(strGreen.toUpper()).arg(strBlue.toUpper());
//RGB显示
QString rgb = QString("%1, %2, %3").arg(red).arg(green).arg(blue);