5

QWidget::mapToGlobalウィジェットが表示されていないときに機能しますか?マニュアルには何も見つかりません。それができない場合はなぜですか?

4

1 に答える 1

5

QWidget::mapToGlobal( QPoint( 0,0 ) )非表示のウィジェットを呼び出す小さなプログラムを作成しました。私が見つけたのは、ウィジェットの位置を照会する前にウィジェットがすでに画面に表示されていたかどうかによって、取得した位置が異なることでした。

QWidget :: mapToGlobal()のドキュメントには次のように書かれています。

ウィジェットの座標位置をグローバル画面座標に変換します。たとえば、mapToGlobal(QPoint(0,0))は、ウィジェットの左上のピクセルのグローバル座標を提供します。

それを読むと、ウィジェットが表示されていない場合、画面上でグローバルな位置が保証されない可能性があることは論理的に思われます。

メソッドを呼び出して得られる実際の結果は、ウィジェットが最後に表示された位置に依存しているようです(存在する場合)。したがって、Qtの現在または将来のバージョンでこの動作が安定していることに依存するのは賢明ではないようです。

于 2011-09-13T22:03:55.107 に答える