can QWidget::mapToGlobal
funziona quando il widget non è visibile? Non trovo nulla sul manuale. Se non può perché?QWidget :: mapToGlobal() quando il widget non è visibile
5
A
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.