Ошибка сборки с QT QRgb

QImage source;
QImage dest;
for(unsigned y=0; y<height; ++y)
{
for(unsigned x=0; x<width; ++x)
{
QColor value = source.color(source.pixelIndex(x, y));   // works fine
const unsigned r = value.red(), g = value.green(), b = value.blue();
// some processing
dest.setColor(dest.pixelIndex(x, y), QRgb(r,g,b));   // build error
}
}

Я получаю ошибку сборки на QRgb(r,g,b)

error: functional cast expression list treated as compound expression

Я отделил другие части линии, поэтому только QRgb не удается построить (у меня это было на отдельной строке, чтобы изолировать проблему)

Я новичок в Qt, поэтому я просматриваю документацию …

https://www.vision.ee.ethz.ch/computing/sepp-irix/qt-2.1.1-to/qcolor.html#24d3b3

https://www.vision.ee.ethz.ch/computing/sepp-irix/qt-2.1.1-to/desktop-desktop-cpp.html#qRgb

Я использую это так же, как они, насколько я могу судить … Я даже пытался QRgb(0,0,0) и это не сработало.

Я не могу пройти мимо этой ошибки сборки, пожалуйста, помогите

0

Решение

Проблема в том, что QRgb это не класс или функция, а имя типа. Я не могу использовать его как класс или функцию для создания QRgb значение. Вместо этого вам нужно использовать глобальную функцию qRgb, например:

dest.setColor(dest.pixelIndex(x, y), qRgb(r,g,b));
1

Другие решения