如何使用Hex格式更改容器的背景颜色?

时间:2014-03-06 08:51:43

标签: c++ qt blackberry qml blackberry-10

我正在使用momentics IDE(原生SDK)开发BlackBerry 10移动应用程序。

我想使用C ++更改容器的背景颜色。但不幸的是,与此[link]相关,您只能将其定义如下:

**Creating a color in C++:**
Color c1 = Color::fromRGBA(0.5f, 1.0f, 0.2f, 0.8f);
Color c2 = Color::fromARGB(0xff996633);

对于颜色,我想使用十六进制格式(“#xxxxxx”)。任何人都可以指导我吗?

1 个答案:

答案 0 :(得分:2)

Color c2 = Color::fromARGB(0xff996633);正在使用0x is c++ representation of a hex code的十六进制。 ff是A组分,99是R,66是G,33是B

因此,如果您想使用没有alpha

的十六进制值#000099

然后就是

Color::fromARGB(0x00000099)

以下代码会将字符串转换为十六进制值,但是您需要先从字符串中删除#,然后才能将字符串传递给缓冲区对象

#include <iostream>
#include <sstream>

int main() { 

    std::string hexString("#ffffff");
    hexString.erase(hexString.begin());

    std::istringstream buffer(hexString);

    int value;

    buffer >> std::hex >> value;

    std::cout << std::hex << value;
    return 0;
}