Qt как узнать цвет пикселя

245
27 сентября 2017, 11:03
void MainWindow::paintEvent(QPaintEvent *e)
{
    QPainter painter(this);
    painter.setBrush(QBrush(Qt::red,Qt::SolidPattern));  
    painter.drawRect(10,10,100,100);
}

Имея данный код как узнать цвет пикселя (20,20)?

В интернете нашел такой способ, но он не работает

QPixmap qPix = QPixmap::grabWidget(ui->centralWidget);
        QImage image(qPix.toImage());
        QColor color(image.pixel(20, 20));
Answer 1

Что-то вроде этого:

QColor QMainWindow::getPixelAt(int x, int y)
{
    return grab(QRect(x, y, 1, 1)).toImage().pixelColor(0,0);
}

Но этот код нельзя вызывать непосредственно из MainWindow::paintEvent(QPaintEvent *e), так как использование метода grab приводит к вызову этого самого paintEvent, и возникнет бесконечная рекурсия. Так что получается ерунда. Если вам нужно знать состояние целевого пикселя во время прорисовки, ИМХО лучше иметь промежуточный буфер и работать с ним, а потом уже его конечное состояние рисовать на виджет.

READ ALSO
Как правильно подключить bootstrap4 в elecrone?

Как правильно подключить bootstrap4 в elecrone?

Столкнулся с проблемой подключение js библиотек, вот как и я подключаю:

316
Как правильно считать сумму товара в корзине используя ajax?

Как правильно считать сумму товара в корзине используя ajax?

Товар приходит массивом и потом через форыч вывожуСумма товара в корзине: $sum += $value->cart_amount * $value->price Удаляю 1 товар с корзины используя ajax, а общая...

319
Формат цен jquery

Формат цен jquery

Приветствую! Как сделать такого формата цена 1100

283
Низкоуровневый интерфейс

Низкоуровневый интерфейс

Почему данный интерфейс называется низкоуровневым? https://jquery-docsru/category/ajax/low-level-interface/

227