Qt QColor получает код цвета, например 45653 (0-65535)

У меня есть простая проблема, но я пока не могу ее решить.

Я что-то вроде этого:

QColor someColor = getColor();

После этого мне нужно получить цветовой код в диапазоне (0-65535). Обращаю ваше внимание, что мне не нужны цветовые коды в диапазоне (0-255).

Так что я должен делать? Может быть что-то вроде:

someColor.get...()

2 ответа

Qt уже предоставляет такую ​​функцию. Смотрите документацию здесь и здесь.

Что это говорит:

QRgb QColor::rgb() const
// Returns the RGB value of the color. The alpha value is opaque.

QRgb QColor::rgba() const
// Returns the RGB value of the color, including its alpha.

typedef QRgb
// An ARGB quadruplet on the format #AARRGGBB, equivalent to an unsigned int.
// The type also holds a value for the alpha-channel.

QColor представляет собой комбинацию из 3 байтов (RGB), поэтому вы должны искать диапазон цветов от 0 до 2^24-1 [0, 16777215]

Вы могли бы сделать что-то вроде:

bool ok;
qDebug() << someColor.name().replace("#", "").toUInt(&ok,16);

С уважением.

Другие вопросы по тегам