簡単なペイントプログラムに取り組んでいます。Qt(およびKDE)はそれを実装する簡単な方法のようでした。Qtの操作は非常に簡単ですが、問題が発生しました。
プログラムで何かを描くとき、マウスを高速に動かすとマウスがスキップします。
このように:
それは1つの長い文字列のようであると思われました。
マウスの左ボタンが押されたときに、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またはOSがマウスの位置/入力を処理する方法である可能性があることを理解しています。
もしそうなら、私はそれをどのように修正しようとしますか、登録された2つのポイントから補間しようとすべきですか?