IDE:Qt creator 4.6.0
date:2018/5/3
version:1.0
难度:易
思路
在QT中,我们一般把图片显示在label中,而此时我们可以通过设置鼠标的点击事件,获取到鼠标点击的相对于窗口的xy值,然后通过获取到的label相对于窗口的xy值,得到鼠标点击点相对于label的xy值。进而通过QImage.pixel获取到该点的数值。
获取点击点的坐标值
1 2 3 4 5 6 7 8 9 10 11 12 13 |
//获得点击点的RGB值 void MainWindow::mousePressEvent(QMouseEvent*event) { if((event->x()>ui->label->x()) && (event->x()<(ui->label->x()+ui->label->width())) ) { if((event->y()>ui->label->y()) && (event->y()<(ui->label->y()+ui->label->height()))) { get_color_click=1; get_color_x=event->x()-ui->label->x(); get_color_y=event->y()-ui->label->y(); } } } |
event->x()
表示点击点的x值
get_color_x
表示图像的坐标值
获取RGB值
1 2 |
QColor color = image.pixel(get_color_x*400/640, get_color_y*300/480); ui->information->setText(tr("(%1,%2,%3)").arg(color.red()).arg(color.green()).arg(color.blue())); |