3

Qt 4.8 を使用しています。マウス カーソルをアプリケーションの中央にバインドしようとしています。

アプリケーションがフルスクリーンの場合、次のコードで動作します

int  middleX = QApplication::desktop()->width() >> 1;
int  middleY = QApplication::desktop()->height() >> 1;

QPoint newMousePos;
newMousePos.setX(middleX);
newMousePos.setY(middleY);
QCursor::setPos(newMousePos);

そしてそれは動作します。

しかし、アプリケーションが全画面表示モードでない場合、どうすればよいでしょうか? Web からいくつかのコードを試してみましたが、動作することがわかりませんでした。ウィンドウの現在のジオメトリ、つまり現在のウィンドウ位置 wrt モニターとウィンドウの幅と高さを取得する必要があることを理解しています。

しかし、そのために使用される関数は何ですか?

前もって感謝します

4

1 に答える 1

2

必要なのはこれだけです:

QCursor::setPos(geometry().center());

これにより、画面上のウィンドウのサイズと位置に関係なく、カーソルがアプリケーション ウィンドウのメイン ウィジェットの真ん中に置かれます。

于 2013-03-19T11:57:17.630 に答える