我正在研究一个简单的绘画程序。似乎 Qt(和 KDE)将是实现它的一种简单方法。我发现 Qt 很容易使用,但现在我遇到了问题。
当我在我的程序中绘制一些东西时,如果我将鼠标移动到快,鼠标就会跳过。
像这样:
它应该像一根长绳子。
当按下鼠标左键时,我正在使用 mouseMoveEvent() 为我的图像绘制一个像素。我调用了 setMouseTracking(true); 所以只要我移动鼠标,就应该调用该事件。
void camoMaker::mouseMoveEvent(QMouseEvent *ev)
{
if(ev->state()==Qt::LeftButton)
{
QPoint mPoint=ev->pos();
mPoint.setX(mPoint.x()-80);
drawPoint(mPoint);
}
}
camoMaker 是主要的小部件。
drawPoint() 在内部 QImage 上绘制一个像素,并在 QWidget 上使用 QPainter 绘制区域。
在我看来,鼠标移动的每个像素都没有调用 mouseMoveEvent(),或者鼠标实际上只是跳过了一些像素。
我知道它可能只是它的工作原理而不是 Qt 故障,而是 X11 或操作系统如何处理鼠标位置/输入。
如果是这样,我将如何解决它,我应该尝试从注册的 2 个点进行插值吗?