首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++:有没有一种简单的方法可以将十六进制颜色‘0xff2a2620’映射到更具可读性的字符串‘可爱的布朗’?

C++:有没有一种简单的方法可以将十六进制颜色‘0xff2a2620’映射到更具可读性的字符串‘可爱的布朗’?
EN

Stack Overflow用户
提问于 2015-09-25 09:32:08
回答 2查看 200关注 0票数 3

我使用的Juce框架具有如下所示的setColour方法:

g.setColour (Colour (0xff2a2620));

相反,我想写一些更易读的东西,例如:

g.setColour (Colour (lovelyBrown));,“映射”0xff2a2620到“可爱的布朗”。

该方法的原型是:

explicit Colour (uint32 argb) noexcept;,其中uint32是:

/** A platform-independent 32-bit unsigned integer type. */ typedef unsigned int uint32;

Juce已经有了可读的颜色名称,例如:

const Colour Colours::tomato (0xffff6347);,使用一种方法查找给定名称的颜色:

static JUCE_API Colour findColourForName (const String& colourName, const Colour& defaultColour);

然而,我不想修改或子类他们的颜色类。我想知道是否有更简单的“映射”0xff2a2620到“可爱的布朗”的方法?

EN

回答 2

Stack Overflow用户

发布于 2015-09-25 09:41:52

使用C++11枚举(这样您的枚举将是一个uint32_t):

代码语言:javascript
复制
#include <cstdint>
enum class Colours : std::uint32_t {
    lovelyBrown = 0xff2a2620,
    lovelyOther = 0xff2a26FF
};
票数 2
EN

Stack Overflow用户

发布于 2015-09-25 09:41:46

代码语言:javascript
复制
enum MyColour {
lovelyBrown = 0xff2a2620,
};

这是可行的,但我最终遵循托尼的建议,一个清洁(和容易!)解决方案。见他的回答

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32779095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档