小编kva*_*san的帖子

Qt,鼠标跳过,不更新每个像素,mouseMoveEvent()

我正在制作一个简单的油漆程序.似乎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);
    }
}
Run Code Online (Sandbox Code Playgroud)

camoMaker是主要的小部件.
drawPoint()在内部QImage上绘制一个像素,并在绘图区域的QWidget上使用QPainter.

在我看来,鼠标移动的每个像素都没有调用mouseMoveEvent(),或者鼠标实际上只是跳过一些像素.

我知道它可能只是如何工作而不是Qt故障而是X11或操作系统如何处理鼠标位置/输入.

如果是这样我将如何解决它,我应该尝试插入2点注册?

c++ linux qt kde

4
推荐指数
1
解决办法
2639
查看次数

标签 统计

c++ ×1

kde ×1

linux ×1

qt ×1