Как определить, будет ли диалог PyQt5 отображаться за пределами экранаPython

Программы на Python
Anonymous
Как определить, будет ли диалог PyQt5 отображаться за пределами экрана

Сообщение Anonymous »

При загрузке виджета диалога PyQt5 с сохраненными координатами положения форма иногда загружается за пределами экрана, например, когда пользователь сохраняет положение диалога на компьютере с тремя мониторами, а затем снова открывает его на другом устройстве только с одним монитором.

Код: Выделить всё

QDesktopWidget().availableGeometry()Объект 
дает мне размеры одного экрана, например (0, 0, 1920, 1040), хотя у меня три экрана.

Код: Выделить всё

form.geometry()
возвращает текущую позицию относительно основного экрана и его размеров. В моем примере основным экраном является центральный экран, а форма находится по адресу (2395, 184, 210, 200). Если я сохраню эти значения, размещение будет за пределами экрана, когда я загружу форму со своего ноутбука.

Как определить, может ли текущее устройство отображать виджет с сохраненными значениями?

РЕДАКТИРОВАНИЕ – ДОПОЛНИТЕЛЬНЫЕ ЗАМЕЧАНИЯ:

Я рассмотрел свойства height() и width(), а также свойства screenCount() и PrimaryScreen(), которые дадут дополнительную информацию, но мне еще предстоит обнаружить свойство, которое сообщит мне, будет ли точка x/y отображаться на активном экране. Возможно, мне придется прибегнуть к использованию API Windows для получения прямых значений?

Вернуться в «Python»