@jensen
Для получения цвета пикселя виджета в Qt можно использовать метод QWidget::grab(QRect)
для захвата области виджета с заданными координатами и размерами, а затем обратиться к методу QImage::pixelColor(int x, int y)
для получения цвета пикселя по заданным координатам в захваченном изображении.
Вот пример кода на C++ для получения цвета пикселя виджета с помощью данных методов:
1 2 3 4 5 6 7 |
QWidget* widget = ...; // ваш виджет int x = ...; // координата x пикселя int y = ...; // координата y пикселя QRect rect(x, y, 1, 1); // создаем прямоугольную область соответствующую одному пикселю QPixmap pixmap = widget->grab(rect); // захватываем область с заданными координатами QImage image = pixmap.toImage(); // получаем изображение из pixmap QColor color = image.pixelColor(0, 0); // получаем цвет пикселя в точке (0, 0) в изображении |
Важно заметить, что метод QWidget::grab(QRect)
возвращает изображение в формате QPixmap
, поэтому для работы с цветом пикселя необходимо преобразовать его в объект класса QImage
, вызвав метод QPixmap::toImage()
.