본문 바로가기

프로그래밍/PyQt5 GUI

12. 절대적 배치

절대적 배치(Absolute positioning) 방식은 각 위젯의 위치와 크기를 픽셀 단위로 설정해서 배치합니다.

두 개의 라벨과 두 개의 푸시 버튼 위젯을 절대적 배치 방식으로 배치해 봅니다.

12-1 예제: ex11

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton

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

    def initUI(self):
        label1 = QLabel('Label1', self)
        label1.move(20, 20)

        label2 = QLabel('Label2', self)
        label2.move(20, 60)

        btn1 = QPushButton('Button1', self)
        btn1.move(80, 13)

        btn2 = QPushButton('Button2', self)
        btn2.move(80, 53)

        self.setWindowTitle('Absolute Positioning')
        self.setGeometry(300, 300, 400, 200)
        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MyApp()
    sys.exit(app.exec_())

12-2 설명

  • 위젯의 위치를 설정하기 위해 move() 메서드를 사용합니다.
  • 라벨과 푸시버튼의 x, y 좌표를 설정함으로서 위치를 조절합니다.
  • 좌표는 왼쪽 상단 모서리에서 시작하므로 x 좌표는 왼쪽에서 오른쪽으로 갈 수록 커지고, y 좌표는 위에서 아래로 갈수록 커집니다.
label1 = QLabel('Label1', self)
label1.move(20, 20)
  • 라벨을 하나 만들고 x = 20, y = 20 에 위치하도록 옮겨줍니다.
btn1 = QPushButton('Button1', self)
btn1.move(80, 13)
  • 푸시버튼을 하나 만들고 x = 80, y = 13 에 위치하도록 옮겨줍니다.

12-3 결과

'프로그래밍 > PyQt5 GUI' 카테고리의 다른 글

14. 그리드 레이아웃  (0) 2021.07.23
13. 박스 레이아웃  (0) 2021.07.22
11. StyleSheet (스타일 꾸미기)  (0) 2021.07.22
10. 날짜와 시간 표시하기  (0) 2021.07.22
9. 창을 화면의 가운데로  (0) 2021.07.22