Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用十六进制格式更改容器的背景色?_C++_Qt_Blackberry_Qml_Blackberry 10 - Fatal编程技术网

C++ 如何使用十六进制格式更改容器的背景色?

C++ 如何使用十六进制格式更改容器的背景色?,c++,qt,blackberry,qml,blackberry-10,C++,Qt,Blackberry,Qml,Blackberry 10,我正在使用momentics IDE(本机SDK)开发BlackBerry 10移动应用程序 < >我想用C++来改变容器的背景颜色。但不幸的是,与此[]相关,您只能如下定义: **Creating a color in C++:** Color c1 = Color::fromRGBA(0.5f, 1.0f, 0.2f, 0.8f); Color c2 = Color::fromARGB(0xff996633); 对于颜色,我想使用十六进制格式(“xxxxxx”)。任何人都可以在这方面指导我

我正在使用momentics IDE(本机SDK)开发BlackBerry 10移动应用程序

< >我想用C++来改变容器的背景颜色。但不幸的是,与此[]相关,您只能如下定义:

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

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

Color c2=Color::fromARGB(0xff996633)使用十六进制<代码> 0x是十六进制代码< /代码>的C++表示。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;
}
#包括
#包括
int main(){
std::字符串hextstring(#ffffff”);
擦除(hexString.begin());
std::istringstream缓冲区(十六进制字符串);
int值;
缓冲区>>标准::十六进制>>值;

std::我能理解,但是当我有例如“#FFFFFF”时,我应该如何将字符串转换为int?添加了将字符串转换为十六进制的代码,您将需要从字符串前面删除“#”,但是在handok之前,我正在测试它!!只有一件事,“std::十六进制”有什么特别的效果吗?因为我想创建一个应该返回int结果值的函数并使用它。我尝试了,但它给出了以下错误:“std::ios\u base&(std::ios\u base&)类型的无效操作数”'和'int'到二进制'operator@user2072762您应该能够直接使用int,它应该只在读取int时才起作用,而不是值的实际外观,因此只返回值;您是否正在寻找代码将以#开头的字符串,后跟6个十六进制数字转换为int值?QString将完成所有这一切,查看mod和toInt方法。