Название: Как привести QColor k unsigned и наоборот? Возможно ли это? Отправлено: billy4685 от Ноябрь 19, 2014, 11:11 Приветствую всех форумчан. Возникла необходимость задавать цвет фона виджета через unsigned. Но как известно в Qt за цвет отвечает класс QColor, и задается либо как Qt::red, либо rgb(120, 20, 30). Может кто знает как цвет задан в unsigned привести к типу QColor?
Пытался следующим образом задавать цвет фона виджета: Код: unsigned red = Qt::red; Виджет почему-то черным становится, а не красным. Значение red = 7, впринцыпе так же как и в справке по Qt Qt::red тоже должно равнятся 7. Что за проблема? Название: Re: Как привести QColor k unsigned и наоборот? Возможно ли это? Отправлено: Old от Ноябрь 19, 2014, 11:14 Посмотрите на QRgb.
Название: Re: Как привести QColor k unsigned и наоборот? Возможно ли это? Отправлено: billy4685 от Ноябрь 19, 2014, 12:02 Посмотрите на QRgb. Нашел функцию QColor::rgb() const, которая возвращает значение QRgb эквивалентное unsigned int. Этот поможет перевести QColor в unsigned, а вот как наоборот? чтобы как в примере в unsigned = Qt::red и как-то его преобразовать в QColor? Название: Re: Как привести QColor k unsigned и наоборот? Возможно ли это? Отправлено: Old от Ноябрь 19, 2014, 12:05 Для этого есть специальный конструктор:
QColor::QColor(QRgb color) Название: Re: Как привести QColor k unsigned и наоборот? Возможно ли это? Отправлено: billy4685 от Ноябрь 19, 2014, 12:16 Для этого есть специальный конструктор: QColor::QColor(QRgb color) да видел, но вот если я посылаю в него ранее созданный цвет Qt::red типа unsigned или же QRgb (тоесть ранее обьявленный), то цвет почему-то становится черным. может цвет ранее нужно определять как Qt::тип red = Qt::red? ну как к примеру для align Qt::Alignment align = Qt::AlignLeft. но я вот не пойму какой тип после Qt:: указывать. Название: Re: Как привести QColor k unsigned и наоборот? Возможно ли это? Отправлено: Old от Ноябрь 19, 2014, 12:26 может цвет ранее нужно определять как Qt::тип red = Qt::red? ну как к примеру для align Qt::Alignment align = Qt::AlignLeft. Qt::red это константа Qt::GlobalColor, для нее есть другой конструктор у QColor.но я вот не пойму какой тип после Qt:: указывать. Вам нужно свой unsigned int приводить к QRgb, а лучше сразу его формировать через специальные функции: QRgb qRgb(int r, int g, int b) QRgb qRgba(int r, int g, int b, int a) Название: Re: Как привести QColor k unsigned и наоборот? Возможно ли это? Отправлено: billy4685 от Ноябрь 19, 2014, 12:34 может цвет ранее нужно определять как Qt::тип red = Qt::red? ну как к примеру для align Qt::Alignment align = Qt::AlignLeft. Qt::red это константа Qt::GlobalColor, для нее есть другой конструктор у QColor.но я вот не пойму какой тип после Qt:: указывать. Вам нужно свой unsigned int приводить к QRgb, а лучше сразу его формировать через специальные функции: QRgb qRgb(int r, int g, int b) QRgb qRgba(int r, int g, int b, int a) спасибо за помощь)) Название: Re: Как привести QColor k unsigned и наоборот? Возможно ли это? Отправлено: billy4685 от Ноябрь 19, 2014, 16:50 оказалось все довольно просто)) в unsigned нужно было задавать числа в шестнадцатеричном виде))
unsigned int red = 0xFF0000; Название: Re: Как привести QColor k unsigned и наоборот? Возможно ли это? Отправлено: Igors от Ноябрь 19, 2014, 16:52 оказалось все довольно просто)) в unsigned нужно было задавать числа в шестнадцатеричном виде)) Альфу тоже заполните 0xFFFF0000unsigned int red = 0xFF0000; |