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),但它不起作用。

我无法克服此构建错误,请帮助

最佳答案

问题在于QRgb不是类或函数,而是类型名称。我不能将其用作构造QRgb值的类或函数。您需要改用qRgb全局函数,例如:

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

10-05 18:03