Есть только один способ сделать это:
В классе QPixmap есть статический член
QPixmap QPixmap::grabWindow( WId window, int x = 0, int y = 0, int width = -1, int height = -1 )
1) нарисовать свой градиент на виджете;
2) с помощью этой функции захватить поверхность вашего виджета в растровое изображение;WId
можно получить от QWidget::effectiveWinId ()
;
3) преобразовать растровое растровое изображение в QImage
(имеется конструктор);
4) int QImage::pixelIndex( int x, int y )
возвращает индекс пикселя в точке (x, y) в таблице цветов QImage
.В вашем случае вы должны рассчитать процентное значение от высоты виджета (pWidget->height() / 100 * 28.5
).
5) QRgb QImage::color( int i )
возвращает цвет в таблице цветов по индексу i.
Итак, возвращенный цвет - это цвет, который вы искали.