На этом шаге мы рассмотрим методы, используемые для получения размеров окна.
Получить размеры окна позволяют следующие методы:
window.resize(50, 70) print(window.width(), window.height()) # 50 70
window.resize(50, 70) print(window.size().width(), window.size().height()) # 50 70
window.setGeometry(QtCore.QRect(100, 100, 100, 70)) rect = window.rect() print(rect.left(), rect.top()) # 0 0 print(rect.width(), rect.height()) # 100 70
window.setGeometry(QtCore.QRect(100, 100, 100, 70)) rect = window.geometry() print (rect.left () , rect.top()) # 100 100 print (rect.width(), rect.height()) # 100 70
При изменении и получении размеров окна следует учитывать, что:
Чтобы получить размеры окна, включающие высоту заголовка и ширину границ, следует воспользоваться методом frameSize(), который возвращает экземпляр класса QSize. Обратите внимание, что полные размеры окна доступны только после его отображения, - до этого момента они совпадают с размерами клиентской области окна, без учета высоты заголовка и ширины границ. Пример получения полного размера окна:
window.resize(200, 70) # Задаем размеры # ... window.show() # Отображаем окно print(window.width(), window.height()) # 200 70 print(window.frameSize().width(), window.frameSize().height()) # 208 104
Чтобы получить координаты окна с учетом высоты заголовка и ширины границ, следует воспользоваться методом frameGeometry(). И в этом случае полные размеры окна доступны только после отображения окна. Метод возвращает экземпляр класса QRect. Пример:
window.setGeometry(100, 100, 200, 70) # ... window.show() # Отображаем окно rect = window.geometry() print (rect.left(), rect.top()) # 100 100 print(rect.width(), rect.height()) # 200 70 rect = window.frameGeometry() print(rect.left(), rect.top()) # 96 70 print(rect.width(), rect.height()) # 208 104
На следующем шаге мы рассмотрим местоположение окна на экране и управление им.