[PyQt5] 위치, 정렬, 가운데, 화면

2020. 2. 11. 16:12IT/PyQt5

 

창을 화면 가운데로 옮기는 기능입니다.

 

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidget


class centerApp(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('가운데로')
        self.resize(200,200)
        self.center()
        self.show()

    def center(self):
        frame_info = self.frameGeometry()
        print(f'-> frame_info : {frame_info}')
        display_center = QDesktopWidget().availableGeometry().center()
        print(f'-> display_center : { display_center }')
        frame_info.moveCenter(display_center)
        self.move(frame_info.topLeft())

if __name__ == "__main__":
    app = QApplication(sys.argv)
    ax = centerApp()
    sys.exit(app.exec_())

 

초기화 함수중 center()를 만들어서 정렬기능을 추가하였습니다. 

원리는 가상의 사각형을 만들어 화면 중앙 위치로 옮긴후, 윈도우을 이동한 사각형 위치에 정렬시키는 방식입니다. 

 

self.frameGeometry()는 윈도우의 GeoMetry() 정보를 불러와 동일한 정보의 가상의 사각형을 생성합니다.

QDesktopWidget().availableGeometry().center()으로 화면의 중앙 좌표를 계산합니다.

frame_info.moveCenter(display_center), self.move(frame_info.topLeft())으로 가상의 사각형을 화면 중앙 좌표로 이동시키고, 윈도우를 해당 위치로 이동시킵니다. 

 

 

 

 

 

 

 

'IT > PyQt5' 카테고리의 다른 글

[PyQt5] 라벨, 스타일, 색상, 선  (0) 2020.02.11
[PyQt5] 시간, 날짜,  (0) 2020.02.11
[PyQt5] 메뉴, 아이콘, 메뉴바  (0) 2020.02.11
[PyQt5] 메뉴, 아이콘, 메뉴바  (0) 2020.02.11
[PyQt5] 상태바, 하단바  (0) 2020.02.11