2011-09-13 2 views

risposta

5

Ho appena scritto un piccolo programma che chiama QWidget::mapToGlobal(QPoint(0,0)) su un widget nascosto. Quello che ho trovato è che la posizione che ho ottenuto varia, a seconda che il widget fosse già stato visualizzato sullo schermo prima di interrogare la sua posizione.

La documentazione QWidget::mapToGlobal() dice:

Traduce coordinare il widget di pos a coordinate dello schermo globali. Ad esempio, mapToGlobal (QPoint (0,0)) fornirebbe le coordinate globali del pixel in alto a sinistra del widget.

Leggendo ciò, sembra logico che se il widget non è visibile, non può possibilmente avere una posizione globale garantita sullo schermo.

Il risultato effettivo ottenuto dal richiamo del metodo sembra dipendere dalla posizione in cui è stato visualizzato l'ultimo widget, se presente. Quindi sembra poco saggio dipendere da questo comportamento stabile nelle versioni attuali o future di Qt.