QWidget :: mapToGlobal (), когда виджет не виден - PullRequest
5 голосов
/ 13 сентября 2011

может QWidget::mapToGlobal работать, когда виджет не виден? Я не нахожу ничего в руководстве. Если не может Почему?

1 Ответ

5 голосов
/ 14 сентября 2011

Я только что написал небольшую программу, которая вызывает QWidget::mapToGlobal( QPoint( 0,0 ) ) для скрытого виджета.Я обнаружил, что полученная позиция менялась в зависимости от того, был ли виджет уже отображен на экране до того, как я запросил его позицию.

Документация QWidget :: mapToGlobal () гласит:

Переводит координату pos виджета в глобальные координаты экрана.Например, mapToGlobal (QPoint (0,0)) выдаст глобальные координаты верхнего левого пикселя виджета.

Считая это, кажется логичным, что если виджет не виден, он не можетвозможно, имеет гарантированную глобальную позицию на экране.

Фактический результат, который вы получаете при вызове метода, по-видимому, зависит от позиции, в которой последний раз отображался виджет, если таковой имеется.Поэтому кажется неразумным зависеть от того, будет ли это поведение стабильным во всех текущих или будущих версиях Qt.

...