我正在开发一个简单的绘画程序。
Qt(和KDE)似乎是实现它的简单方法。
我发现Qt很容易使用,但现在我遇到了一个问题。
当我在程序中绘制图形时,如果我移动鼠标太快,鼠标会跳过一些位置,就像这样:
![alt text](https://i229.photobucket.com/albums/ee237/kvasarnomad/dev/camoMaker.png)
它应该像一个长字符串一样连续。
我使用mouseMoveEvent()在左键按下时向我的图像绘制一个像素。 我调用了setMouseTracking(true);以便只要我移动鼠标,事件就会被调用。
当我在程序中绘制图形时,如果我移动鼠标太快,鼠标会跳过一些位置,就像这样:
![alt text](https://i229.photobucket.com/albums/ee237/kvasarnomad/dev/camoMaker.png)
它应该像一个长字符串一样连续。
我使用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个点进行插值吗?