Warm tip: This article is reproduced from serverfault.com, please click

c++-彩色鼠标移动

(c++ - Color mouse movement)

发布于 2020-11-28 04:17:30

我目前正在使用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上的图像时,图像上的当前位置应标记为绿色。我是否缺少某些东西,还是我的一般方法不正确?

Questioner
infinitedreamer666
Viewed
11
Kuba hasn't forgotten Monica 2020-11-28 17:46:56

你的image变量来自哪里没有正确的内容。你可能在标签上设置了一些图像,但是应该在image成员变量上设置该图像,然后使用图像在标签上进行设置。