写一个cpp算法函数, 支持QColor 转换为 QVector4D
时间: 2023-05-26 20:02:14 浏览: 221
#include <QVector4D>
#include <QColor>
QVector4D QColorToVector4D(const QColor& color)
{
QVector4D vector;
vector.setX(color.redF());
vector.setY(color.greenF());
vector.setZ(color.blueF());
vector.setW(color.alphaF());
return vector;
}
// 使用方法
QColor color(255, 0, 0, 127);
QVector4D vector = QColorToVector4D(color); // 将QColor转换为QVector4D
float red = vector.x(); // 获取红色分量
float green = vector.y(); // 获取绿色分量
float blue = vector.z(); // 获取蓝色分量
float alpha = vector.w(); // 获取透明度分量
相关问题
写一个cpp算法函数, 支持QColor 转换为 QVector4D, QVector4D中的值区间为0-1
下面是一个cpp算法函数,支持将QColor 转换为 QVector4D,并且将QVector4D中的值区间限制在0-1之间:
```cpp
QVector4D colorToVector4D(const QColor& color) {
float r = color.red() / 255.0f;
float g = color.green() / 255.0f;
float b = color.blue() / 255.0f;
float a = color.alpha() / 255.0f;
return QVector4D(r, g, b, a).normalized();
}
```
首先将QColor中的RGBA值分别除以255.0f,将其范围限制在0-1之间。然后,使用QVector4D(r, g, b, a)构造函数创建一个四元组,并调用其normalized()方法将其标准化,确保其长度为1,未超出范围。最后,将QVector4D返回作为结果。
QT中qcolor如何转换成qbrush
你好,关于你的问题,可以通过QBrush的构造函数将QColor转换为QBrush。具体实现代码如下:
QColor color(Qt::red);
QBrush brush(color);
希望我的回答能够帮助到你。
阅读全文