这段时间学习qss,在选取颜色的时候比较麻烦,群友给我发了一个抓色工具,我就想着自己也可以做一个,废话不多说,开始吧。
抓色器实现
思路
放到通过鼠标的相关事件event能获取到鼠标的位置,但是没有找到能直接获取屏幕某一像素点的颜色信息相关的方法,所以打算先抓取屏幕截图,然后对截图进行制定像素点操作就可以啦。
步骤
步骤一:获取屏幕、鼠标位置
//抓取屏幕
QScreen * m_screen = windowHandle()->screen();
//获取鼠标pos
//注event.pos和event.windpos都是窗口(Widget)的坐标,这里需要屏幕坐标应该使用event.globalPos
int globalX = event->globalPos().x();
int globalY = event->globalPos().y();
//int posX = event->pos().x();
// int posY = event->pos().y();
注意:这里是对整个屏幕进行的抓取颜色,所以需要获取的是鼠标再屏幕中的坐标,应该使用globalPos(),千万不能使用pos()或者windowPos()。
步骤二:截图,获取像素点颜色信息
截取屏幕为图片,并获得鼠标所在位置的像素点颜色信息