彩色鼠标移动
Color mouse movement
我目前正在使用 Qt C++ 开发一个 GUI 项目。我的一部分工作包括跟踪鼠标移动并用绿色像素标记其位置。跟踪应该只发生在存储在标签中的特定图像上。
到目前为止,鼠标的跟踪工作正常,我已经能够从 QMouseEvent 中提取坐标。但是,我似乎很难为鼠标所在的像素着色。我想要的只是一个彩色像素,它连续标记鼠标所在的位置,但我正在为鼠标所在的所有像素着色,而且图像似乎也没有更新。当我走过去时,我得到的只是一个黑色标签(图像被擦掉)和我用鼠标去过的所有绿色像素。
但是它应该只对现有图像上的当前像素着色,然后它应该刷新到下一个位置。这是我为此实现的功能:
QPoint current = event->pos();
QPoint localPos = ui->label_image_2->mapFromParent(current);
if(ui->label_image_2->rect().contains((localPos))){
image.setPixel(localPos.x(),localPos.y(), qRgb(0,255,0));
ui->label_image_2->setPixmap(QPixmap::fromImage(image));
当我浏览 label_2 上的图像时,图像上的当前位置应标记为绿色。我是不是遗漏了什么,或者我的一般方法是错误的?
您的 image
变量来自哪里?它没有正确的内容。您可能在标签上设置了一些图像,但您应该在 image
成员变量上设置该图像,并使用 that 在标签上设置。
我目前正在使用 Qt C++ 开发一个 GUI 项目。我的一部分工作包括跟踪鼠标移动并用绿色像素标记其位置。跟踪应该只发生在存储在标签中的特定图像上。
到目前为止,鼠标的跟踪工作正常,我已经能够从 QMouseEvent 中提取坐标。但是,我似乎很难为鼠标所在的像素着色。我想要的只是一个彩色像素,它连续标记鼠标所在的位置,但我正在为鼠标所在的所有像素着色,而且图像似乎也没有更新。当我走过去时,我得到的只是一个黑色标签(图像被擦掉)和我用鼠标去过的所有绿色像素。 但是它应该只对现有图像上的当前像素着色,然后它应该刷新到下一个位置。这是我为此实现的功能:
QPoint current = event->pos();
QPoint localPos = ui->label_image_2->mapFromParent(current);
if(ui->label_image_2->rect().contains((localPos))){
image.setPixel(localPos.x(),localPos.y(), qRgb(0,255,0));
ui->label_image_2->setPixmap(QPixmap::fromImage(image));
当我浏览 label_2 上的图像时,图像上的当前位置应标记为绿色。我是不是遗漏了什么,或者我的一般方法是错误的?
您的 image
变量来自哪里?它没有正确的内容。您可能在标签上设置了一些图像,但您应该在 image
成员变量上设置该图像,并使用 that 在标签上设置。