4

Linux 組み込みシステムで Qt アプリケーションを開発しています。システムにはタッチスクリーンだけでなく、OTG USB ポートもあり、マウスで使用できる必要があります。

したがって、私の問題は、アプリケーションの起動時に画面の中央にマウスカーソルが表示され、メインウィンドウのペイントイベントが発生すると消えてしまうことです。

アプリケーションが起動すると、マウスが接続されている場合はカーソルを非表示/表示できますが、これはうまく機能しますが、起動中は常にカーソルが表示されます。

私は試しました: QWSServer::setCursorVisible(false);

または: qApp->setOverrideCursor(QCursor(Qt::BlankCursor));

結果は上記と同じです。

起動時にカーソルを非表示にする唯一の方法は、カーソルなしで Qt をコンパイルすることでしたが、マウスが接続されているとカーソルを使用できません (これはロジックです...)。

だから、もしあなたがアイデアを持っているなら、私はそれを読んでうれしいです:-)

ありがとう、シルヴァン

編集: 起動時にカーソルを表示するのは QWS サーバーです。qt/src/gui/embedded/qwscursor_qws.cpp で次のことがわかりました。

void QWSServerPrivate::initializeCursor()
{
    Q_Q(QWSServer);
// setup system cursors
#ifndef QT_NO_QWS_CURSOR
//    qt_screen->initCursor(sharedram + ramlen,true);

// default cursor
    cursor = 0;
    setCursor(QWSCursor::systemCursor(Qt::ArrowCursor));
#endif
    q->sendMouseEvent(QPoint(swidth/2, sheight/2), 0);
}

「setCursor」命令にコメントすると、問題は解決しますが、それを行うために Qt ソース コードを編集するのはちょっと面倒なので、より良い解決策があれば...

4

2 に答える 2