我使用的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到“可爱的布朗”的方法?
发布于 2015-09-25 09:41:52
使用C++11枚举(这样您的枚举将是一个uint32_t):
#include <cstdint>
enum class Colours : std::uint32_t {
lovelyBrown = 0xff2a2620,
lovelyOther = 0xff2a26FF
};发布于 2015-09-25 09:41:46
enum MyColour {
lovelyBrown = 0xff2a2620,
};这是可行的,但我最终遵循托尼的建议,一个清洁(和容易!)解决方案。见他的回答
https://stackoverflow.com/questions/32779095
复制相似问题