我需要在mouseMoveEvent
QWidget(面包板)内获取鼠标下像素的颜色。目前我有这个代码->
void Breadboard::mouseMoveEvent(QMouseEvent *e)
{
QPixmap pixmap = QPixmap::grabWindow(winId());
QRgb color = pixmap.toImage().pixel(e->x(), e->y());
if (QColor(color) == terminalColor)
QMessageBox::information(this, "Ter", "minal");
}
看看下面的(按比例缩小的)屏幕截图 -
当用户在面包板上移动鼠标时,孔应该以不同的颜色突出显示(如红色圆圈)。并且当鼠标退出时,应该恢复以前的颜色(灰色)。所以我需要做以下步骤 -
- 在鼠标下获取颜色
- 根据颜色,洪水填充孔。(不同的孔用颜色区分)
- 鼠标移出时,恢复颜色。会有电线穿过孔,所以我不能只更新小矩形(孔)。
最快的方法是什么?我提取颜色的尝试不起作用,即上面代码中的消息框永远不会显示。此外,我怀疑我现有的代码是否足够快以满足我的目的。请记住,在面包板上移动鼠标的速度有多快。
注意 - 我可以使用 wxWidgets 框架来做到这一点。但由于一些问题,该项目停滞不前。我现在正在使用 Qt 重写它。
邀请您查看代码https://github.com/vinayak-garg/dic-sim