При использовании следующего кодаКод: const int w = 64 * 1024; QImage img(w, 1, QImage::Format_RGB32); QLinearGradient gradient(0, 0, img.width() - 1, 1); gradient.setColorAt(0, Qt::blue); gradient.setColorAt(1, Qt::red); QPainter painter(&img); painter.fillRect(img.rect(), gradient); img.save("test.png");Нормальный градиент отрисовывается только для w < 32*1024. Иначе, заполняются градиентом только те точки, чья х-координата меньше 32*1024.Кроме того, даже для для случаев с w < 32 * 1024, цвет крайней правой точки равен не 0xFF0000 (Qt::red), а 0хFD0001 (для w = 32 * 1024 - 1).Qt 4.6.0, WinXP, MSVS и MinGW.
|